1、颜色对话框
//方式一
QColor color = QColorDialog::getColor(Qt::red, this, QString::fromLocal8Bit("颜色对话框"),QColorDialog::ShowAlphaChannel);
qDebug() <<"color:" <<color;
//方式二
QColorDialog dialog(Qt::red, this); // 创建对象
dialog.setOption(QColorDialog::ShowAlphaChannel); // 显示 alpha 选项
dialog.exec(); // 以模态方式运行对话框
QColor color = dialog.currentColor(); // 获取颜色对话框当前颜色
qDebug() << "color:" << color; // 输出颜色信息
2、文件对话框
//注意:(* png * jpg)中间有空格
QString fileName = QFileDialog::getOpenFileName(this, QString::fromLocal8Bit("文件对话框"), "C:", QString::fromLocal8Bit("图片文件(* png * jpg);;文本文件(* txt)"));
qDebug() << "fileName:" << fileName;
QStringList fileNames = QFileDialog::getOpenFileNames(this, QString::fromLocal8Bit("文件对话框"), "C:", QString::fromLocal8Bit("图片文件(* png * jpg);;文本文件(* txt)"));
qDebug() << "fileNames:" << fileNames;
QString saveFileName = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("Save File"), QString::fromLocal8Bit("Images (*.png *.xpm *.jpg)"));
qDebug() << "saveFileName:" << saveFileName;
QString dir = QFileDialog::getExistingDirectory(this, QString::fromLocal8Bit("Open Directory"), "C:", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
qDebug() << "dir:" << dir;
3、字体对话框
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
// 如果单击 Cancel 按钮,那么更改字体
if (ok)
ui.pushButton_font->setFont(font);
else
qDebug() << QString::fromLocal8Bit("没有选择字体!");
4、输入对话框
bool ok;
// 获取字符串
QString string = QInputDialog::getText(this, QString::fromLocal8Bit("输入字符串对话框"), QString::fromLocal8Bit("请输入用户名:"), QLineEdit::Normal, QString::fromLocal8Bit("admin"), &ok);
if (ok)
qDebug() << "string:" << string;
// 获取整数
int value1 = QInputDialog::getInt(this, QString::fromLocal8Bit("输入整数对话框"), QString::fromLocal8Bit("请输入 -1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
if (ok)
qDebug() << "value1:" << value1;
// 获取浮点数
double value2 = QInputDialog::getDouble(this, QString::fromLocal8Bit("输入浮点数对话框"), QString::fromLocal8Bit("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
if (ok) qDebug() << "value2:" << value2;
// 获取条目
const QStringList items = { "aa", "bb" };
QString item = QInputDialog::getItem(this, QString::fromLocal8Bit("输入条目对话框"), QString::fromLocal8Bit("请选择或输入一个条目"), items, 0, true, &ok);
if (ok) qDebug() << "item:" << item;
5、消息对话框
// 问题对话框
int ret1 = QMessageBox::question(this, QString::fromLocal8Bit("问题对话框"), QString::fromLocal8Bit("问题对话框"), QMessageBox::Yes, QMessageBox::No);
if (ret1 == QMessageBox::Yes)
qDebug() << QString::fromLocal8Bit("问题!");
// 提示对话框
int ret2 = QMessageBox::information(this, QString::fromLocal8Bit("提示对话框"), QString::fromLocal8Bit("提示对话框"), QMessageBox::Ok);
if (ret2 == QMessageBox::Ok)
qDebug() << QString::fromLocal8Bit("提示!");
// 警告对话框
int ret3 = QMessageBox::warning(this, QString::fromLocal8Bit("警告对话框"), QString::fromLocal8Bit("警告对话框"), QMessageBox::Abort);
if (ret3 == QMessageBox::Abort)
qDebug() << QString::fromLocal8Bit("警告!");
// 错误对话框
int ret4 = QMessageBox::critical(this, QString::fromLocal8Bit("严重错误对话框"), QString::fromLocal8Bit("严重错误对话框"), QMessageBox::YesAll);
if (ret4 == QMessageBox::YesAll)
qDebug() << QString::fromLocal8Bit("错误");
// 关于对话框
QMessageBox::about(this, QString::fromLocal8Bit("关于对话框"), QString::fromLocal8Bit("关于对话框"));
6、进度对话框
QProgressDialog dialog(QString::fromLocal8Bit("文件进度"), QString::fromLocal8Bit("取消"), 0, 50000, this);
dialog.setWindowTitle(QString::fromLocal8Bit("进度对话框"));
dialog.setWindowModality(Qt::WindowModal); // 将对话框设置为模态
dialog.show();
for (int i = 0; i < 50000; i++)
{
dialog.setValue(i);
QCoreApplication::processEvents();// 避免界面冻结
if (dialog.wasCanceled()) // 按下取消按钮则中断
break;
}
dialog.setValue(50000);
qDebug() << QString::fromLocal8Bit("结束!");
7、错误信息对话框
QErrorMessage *errordlg = new QErrorMessage(this);;
errordlg->setWindowTitle(QString::fromLocal8Bit("错误信息对话框"));
errordlg->showMessage(QString::fromLocal8Bit("这里是出错信息!"));
8、向导对话框
QWizardPage * createPage1() // 向导页面1
{
QWizardPage *page = new QWizardPage;
page->setTitle(QString::fromLocal8Bit("介绍"));
return page;
}
QWizardPage * createPage2() // 向导页面2
{
QWizardPage *page = new QWizardPage;
page->setTitle(QString::fromLocal8Bit("用户选择信息"));
return page;
}
QWizardPage * createPage3() // 向导页面3
{
QWizardPage *page = new QWizardPage;
page->setTitle(QString::fromLocal8Bit("结束"));
return page;
}
void Dialogs::slotBtnWizard()
{
QWizard wizard(this);
wizard.setWindowTitle(QString::fromLocal8Bit("向导对话框"));
wizard.addPage(createPage1()); // 添加向导页面
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();
}