参考文章链接:
Qt对话框之一:标准对话框
Qt对话框之二:模态、非模态、半模态对话框
标准对话框
颜色对话框
颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框部件。
/*** 第一种方式 ***/
//QColor color = QColorDialog::getColor(Qt::red, this, tr("颜色对话框"),QColorDialog::ShowAlphaChannel);
//qDebug() <<"color:" <<color;/*** 第二种方式 ***/
QColorDialog dialog(Qt::red, this); // 创建对象
dialog.setOption(QColorDialog::ShowAlphaChannel); // 显示 alpha 选项
dialog.exec(); // 以模态方式运行对话框
QColor color = dialog.currentColor(); // 获取颜色对话框当前颜色
qDebug() <<"color:" <<color; // 输出颜色信息
第一种方式,使用了 QColorDialog 的静态函数 getColor() 来获取颜色,它的3个参数的作用分别是设置初始颜色、父窗口和对话框标题。第一种方式的好处是不用不用创建对象。但是如果想要更灵活地设置时,采用第二种方式,先创建对象,然后进行各项设置。两者的实现效果是等效的。
文件对话框
文件对话框类 QFileDialog 提供了一个允许用户选择文件或文件夹的对话框。
QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg)"));
这个函数的4个参数的作用分别是:指定父窗口、 设置对话框标题、指定默认打开的目录路径和设置文件类型过滤器。如果不指定文件过滤器,默认是选择所有类型的文件。
这里只选择 png 和 jpg 两种格式的图片文件(注意代码中 * png 和 * jpg 之间需要一个空格),那么在打开的文件对话框中只能显示目录下这两种格式的文件。
还可以设置多个不同类别的过滤器,不同类别间使用两个分号 “;;” 隔开,例如添加文本文件类型:
QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg);;文本文件(* txt)"));
前面这个程序只能选择单个文件,要同时选择多个文件,可以使用 getOpenFileNames()函数, 例如:
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("文件对话框"), "F:",tr("图片文件(* png * jpg);;文本文件(* txt)"));
除了上面的两个函数,QFileDialog 类还提供了 getSaveFileName() 函数来实现保存文件对话框和文件另存为对话框,还有 getExistingDirectory() 函数来获取一个已存在的文件夹路径。
字体对话框
字体对话框 QFontDialog 类提供了一个可以选择字体的对话框部件。
// ok 用于标记是否单击了 OK 按钮。然后获得选择的字体
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
// 如果单击 Cancel 按钮,那么更改字体
if (ok)ui->pushButton_3->setFont(font);
elseqDebug() <<tr("没有选择字体!");
这里使用了 QFileDidog 类的 getFont() 静态函数来获取选择的字体。第一个参数是 bool 类型变量,用来存放按下的按钮状态,比如在打开的字体对话框中单击了 OK 按钮,那么这里的 ok 就为 true,从而告诉用户已经选择了字体。
输入对话框
输人对话框 QInputDialog 类用来提供一个简单方便的对话框,从而从用户那里获取一个单一的数值或字符串。
bool ok;// 获取字符串
QString string = QInputDialog::getText(this, tr("输入字符串对话框"),tr("请输入用户名:"),QLineEdit::Normal, tr("admin"), &ok);
if(ok)
qDebug() <<tr("string:") <