⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 builtindlg.cpp

📁 《精通QT4编程》第二章代码整理 加入修改
💻 CPP
字号:
// chapter2/builtin/src/builtindlg.cpp.#include <QtGui/QtGui>#include "builtindlg.h"CBuiltinDlg::CBuiltinDlg(QWidget* parent) :	QDialog(parent){	displayTextEdit = new QTextEdit(tr("Qt的标准通用对话框。"));	QGridLayout* gridLayout = new QGridLayout;	colorPushBtn 	= new QPushButton(tr("颜色对话框"));	errorPushBtn 	= new QPushButton(tr("错误信息框"));	filePushBtn 	= new QPushButton(tr("文件对话框"));	fontPushBtn 	= new QPushButton(tr("字体对话框"));	inputPushBtn 	= new QPushButton(tr("输入对话框"));	pagePushBtn 	= new QPushButton(tr("页设置对话框"));	progressPushBtn 	= new QPushButton(tr("进度对话框"));	printPushBtn	= new QPushButton(tr("打印对话框"));	gridLayout->addWidget(colorPushBtn, 0, 0, 1, 1);	gridLayout->addWidget(errorPushBtn, 0, 1, 1, 1);	gridLayout->addWidget(filePushBtn, 0, 2, 1, 1);	gridLayout->addWidget(fontPushBtn, 1, 0, 1, 1);	gridLayout->addWidget(inputPushBtn, 1, 1, 1, 1);	gridLayout->addWidget(pagePushBtn, 1, 2, 1, 1);	gridLayout->addWidget(progressPushBtn, 2, 0, 1, 1);	gridLayout->addWidget(printPushBtn, 2, 1, 1, 1);	gridLayout->addWidget(displayTextEdit, 3, 0, 3, 3);	setLayout(gridLayout); 	connect(colorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn())); 	connect(errorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));	connect(filePushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn())); 	connect(fontPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));	connect(inputPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn())); 	connect(pagePushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));	connect(progressPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));	connect(printPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));	setWindowTitle(tr("內建对话框"));	resize(400, 300);}void CBuiltinDlg::doPushBtn(){	QPushButton* btn = qobject_cast<QPushButton*>(sender());	if(btn == colorPushBtn)	{// 颜色对话框.		QPalette palette = displayTextEdit->palette();			const QColor& color 			= QColorDialog::getColor(palette.color(QPalette::Base), this);		if(color.isValid())		{			palette.setColor(QPalette::Base, color);			displayTextEdit->setPalette(palette);			}	}else if(btn == errorPushBtn)	{// 错误信息框.		QErrorMessage box(this);		box.setWindowTitle(tr("错误信息框"));		box.showMessage(tr("错误信息框实例xx。"));		box.showMessage(tr("错误信息框实例xx。"));		box.showMessage(tr("错误信息框实例xx。"));		box.showMessage(tr("错误信息框实例yy。"));		box.showMessage(tr("错误信息框实例zz。"));		box.exec();	}	else if(btn == filePushBtn)	{// 文件对话框.		QString fileName = QFileDialog::getOpenFileName(this, 												tr("打开文件"),                                                "/usr/local/Trolltech",                                                tr("任何文件(*.*)"													";;文本文件(*.txt)"													";;XML文件(*.xml)"));		displayTextEdit->setText(fileName);	}	else if(btn == fontPushBtn)	{// 字体对话框.		bool ok;		const QFont& font = QFontDialog::getFont(&ok,									displayTextEdit->font(),									this,									tr("字体对话框"));		if(ok)		{// 如果<确定>,设置字体.			displayTextEdit->setFont(font);		}	}	else if(btn == inputPushBtn)	{// 输入对话框.		bool ok;     	QString text = QInputDialog::getText(this, 											tr("输入对话框"),                                          	tr("输入文本:"), 											QLineEdit::Normal,                                          	QDir::home().dirName(), &ok);     if (ok && !text.isEmpty())         displayTextEdit->setText(text);	}	else if(btn == pagePushBtn)	{// 页设置对话框.		QPrinter printer;		QPageSetupDialog dlg(&printer, this);		dlg.setWindowTitle(tr("页设置对话框"));		if (dlg.exec() == QDialog::Accepted) 		{			// 进行下一步的处理。 		}		} 	else if(btn == progressPushBtn)	{// 进度对话框.		QProgressDialog progress(tr("正在复制文件..."), tr("取消"), 0, 10000, this);		progress.setWindowModality(Qt::WindowModal);		progress.setWindowTitle(tr("进度对话框"));		progress.show();		for (int i = 0; i < 10000; i++) {			progress.setValue(i);			qApp->processEvents();				if (progress.wasCanceled())				break;			//... 复制文件处理。			qDebug() << i;		}		progress.setValue(10000);	}	else if(btn == printPushBtn)	{// 打印对话框.		QPrinter printer;		QPrintDialog dlg(&printer, this);		dlg.setWindowTitle(tr("打印对话框"));		if (dlg.exec() == QDialog::Accepted) 		{			// 进行下一步的处理。 		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -