1.QErrorMessage 错误信息对话框
QErrorMessage提供了一个错误信息显示的对话框。
一个错误信息部件由一个文本域和一个复选框组成。复选框让用户控制是否下一次还显示这个错误信息,通常显示的文本为“Show this message again”(根据本地的语言环境相应的翻译)。
在开发应用中,这个类被用于用户只看一次的显示信息。
文档例程:
errorMessageDialog->showMessage(
tr("This dialog shows and remembers error messages. "
"If the checkbox is checked (as it is by default), "
"the shown message will be shown again, "
"but if the user unchecks the box the message "
"will not appear again if QErrorMessage::showMessage() "
"is called with the same message."));
2.QColorDialog 颜色对话框
QColorDialog类提供了一个指定颜色的对话框部件。
颜色对话框函数允许用户去选择颜色。例如,在图画程序中,允许用户去设置笔刷的颜色。
静态getColor()函数显示对话框,允许用于去指定一个颜色。这个函数也可以被用于让用户根据透明度级别选择颜色:通过ShowAlphaChannel参数。
用户可以通过存储自定义的颜色。自定义颜色被分享到所有的颜色对话框,在程序执行期间被记忆。用setCustomColor()方法设置自定义颜色,用customColor()方法获取。
文档例程:
QColor color = QColorDialog::getColor(Qt::green, this);
if (color.isValid()) {
colorLabel->setText(color.name());
colorLabel->setPalette(QPalette(color));
colorLabel->setAutoFillBackground(true);
}
3.QFileDialog文件对话框
QFileDialog类提供了一个允许用户去选择文件、目录的对话框。
QFileDialog累允许用户遍历文件系统,以选择一个或多个文件、目录。
最简单的方法创建一个QFileDialog:
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")
4.QFontDialog字体对话框
QFontDialog类提供来一个选择字体的对话框。
一个字体对话框通过静态的getFont()方法创建。
例如:
bool ok;
QFont font = QFontDialog::getFont(
&ok, QFont("Helvetica [Cronyx]", 10), this);
if (ok) {
// the user clicked OK and font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the initial
// value, in this case Helvetica [Cronyx], 10
}
QFontDialog也可以被用于设置一个部件的字体:
myWidget.setFont(QFontDialog::getFont(0, myWidget.font()));
5.QPrintDialog打印对话框
QPrintDialog类提供一个指定打印机配置的对话框。
相关代码:
QPrinter printer;
QPrintDialog dlg(&printer, this);
dlg.setWindowTitle(tr("打印对话框"));
if (dlg.exec() == QDialog::Accepted)
{
// 进行下一步的处理。
}
6.QProgressDialog进度对话框
QProgressDialog类提供了对费时操作进度的反馈功能。进度对话框用于给用户指出某个将要进行的操作需要多长时间,以及表明应用程序尚未冻结。尽管QProgressDialog类似于QProgressBar,但QProgressDialog给了用户放弃操作的机会,而QProgressBar只是仅仅显示进度。
相关代码:
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);