1.颜色对话框
#include <QColorDialog>
//1.调用静态函数的方式
//QColor color = QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));
//最后一个参数在对话框中显示alpha的设置
QColor color = QColorDialog::getColor(Qt::red,this,tr("颜色对话
框"),QColorDialog::ShowAlphaChannel);
qDebug() << "color" << color;
2.创建对象的方式
QColorDialog dialog(Qt::red,this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
dialog.exec();
QColor color = dialog.currentColor();
qDebug() << "color" << color;
//两种方式调出来的对话框都是模态对话框
2.文件对话框
#include <QFileDialog>
//1.打开一个文件
QString fileName = QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
//2.设置多个不同类别的过滤器用两个分号“;;”隔开
QString fileName = QFileDialog::getOpenFileName(
this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg);;文本文件(*txt)"));
qDebug() << "fileName" << fileName;
//3.同时选择多个文件
QStringList fileNames = QFileDialog::getOpenFileNames(this,tr("文件对话框"),"F:",tr("图片文件(*png *jpg)"));
qDebug() << "fileNames" << fileNames;
//4.文件另存为
[static] QString QFileDialog::getSaveFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"/home/jana/untitled.png",
tr("Images (*.png *.xpm *.jpg)"));
3.字体对话框
#include <QFontDialog>
//字体对话框
bool ok;
QFont font = QFontDialog::getFont(&ok,this);
if(ok)
{
ui->pushButton_4->setFont(font);
}
else
{
qDebug() << tr("没有选中字体");
}
4.输入对话框
#include <QInputDialog>
//输入对话框
bool ok;
//1.获取字符串
QString string = QInputDialog::getText(this,tr("输入字符串对话框"),tr("请输入用户名:"),QLineEdit::Normal,tr("admin"),&ok);
if(ok)
{
qDebug() << "string" << string;
}
//2.获取整数
int value = QInputDialog::getInt(this,tr("输入整数对话框"),tr("请输-1000到1000之间的数值"),100,-1000,1000,10,&ok);
if(ok)
{
qDebug() << "value:" << value;
}
//3.获取浮点数
//4.获取条目
QStringList items;
items << tr("条目1") << tr("条目2");
QString item = QInputDialog::getItem(this,tr("输入条目对话框"),tr("请选择或输入一个条目"),items,0,true,&ok);
if(ok)
{
qDebug() << "item:" << item;
}
5.消息对话框
#include <QMessageBox>
//1.问题对话框
int ret1 = QMessageBox::question(this,tr("问题对话框"),tr("你了解qt吗?"),QMessageBox::Yes,QMessageBox::No);
if(ret1 == QMessageBox::Yes)
{
qDebug() << tr("问题");
}
//2.提示对话框
int ret2 = QMessageBox::information(this,tr("提示对话框"),tr("这是qt书籍!"),QMessageBox::Ok);
if(ret2 == QMessageBox::Ok)
{
qDebug() << tr("提示");
}
//3.警告对话框
int ret3 = QMessageBox::warning(this,tr("警告对话框"),tr("不能提前结束!"),QMessageBox::Abort);
if(ret3 == QMessageBox::Abort)
{
qDebug() << tr("警告");
}
//4.错误对话框
int ret4 = QMessageBox::warning(this,tr("错误对话框"),tr("发现一个严重错误"),QMessageBox::YesAll);
if(ret4 == QMessageBox::YesAll)
{
qDebug() << tr("错误");
}
//5.关于对话框
QMessageBox::about(this,tr("关于对话框"),tr("yafeilinux致力于"));
6.进度对话框
#include <QProgressDialog>
QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
dialog.setWindowTitle(tr("进度对话框"));
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() << tr("复制结束");
7.错误信息对话框
#include <QErrorMessage>
//成员变量
QErrorMessage* errordlg;
//构造函数中
errordlg = new QErrorMessage(this);
errordlg->setWindowTitle(tr("错误信息对话框"));
errordlg->showMessage(tr("这里是出错信息!"));
8.向导对话框
#include <QWizard>
//private:
QWizardPage* createPage1();
QWizardPage* createPage2();
QWizardPage* createPage3();
QWizardPage *Widget::createPage1()
{
QWizardPage* page = new QWizardPage;
page->setTitle(tr("介绍"));
return page;
}
QWizardPage *Widget::createPage2()
{
QWizardPage* page = new QWizardPage;
page->setTitle(tr("用户选择信息"));
return page;
}
QWizardPage *Widget::createPage3()
{
QWizardPage* page = new QWizardPage;
page->setTitle(tr("结束"));
return page;
}
//使用
QWizard wizard(this);
wizard.setWindowTitle(tr("向导对话框"));
wizard.addPage(createPage1());
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();