标准对话框
标准对话框,是 Qt 内置的一系列对话框,用于简化开发。
Qt 的内置对话框大致分为以下几类:
QColorDialog
:选择颜色;QFileDialog
:选择文件或者目录;QFontDialog
:选择字体;QInputDialog
:允许用户输入一个值,并将其值返回;QMessageBox
:模态对话框,用于显示信息、询问问题等;QPageSetupDialog
:为打印机提供纸张相关的选项;QPrintDialog
:打印机配置;QPrintPreviewDialog
:打印预览;QProgressDialog
:显示操作过程。
QMessageBox,是
用于显示消息提示。
if (QMessageBox::Yes == QMessageBox::question(this,
tr("Question"),
tr("Are you OK?"),
QMessageBox::Yes | QMessageBox::No, //选择Yes和No
QMessageBox::Yes)) {
QMessageBox::information(this, tr("Hmmm..."), tr("I'm glad to hear that!")); //选择Yes执行
}
else {
QMessageBox::information(this, tr("Hmmm..."), tr("I'm sorry!")); //选择No执行
}
QMessageBox::question()
来询问一个问题。对话框的父窗口是 this,是 MainWindow(或者其他 QWidget 指针)。
第二个参数是对话框的标题。
第三个参数是我们想要显示的内容。这里就是我们需要询问的文字。
我们使用或运算符(|)指定对话框应该出现的按钮。一个 Yes 和一个 No。
最后一个参数指定默认选择的按钮。函数有一个返回值,用于确定用户点击的是哪一个按钮。这是一个模态对话框,可以直接获取其返回值。如果返回值是 Yes,也就是说用户点击了 Yes 按钮,我们显示一个普通消息对话框,显示“I'm glad to hear that!”,否则则显示“I'm sorry!”。
QFileDialog,文件对话框
添加打开和保存文件
openAction=new QAction(QIcon(":/images/doc-open"),tr("&打开..."),this); //传入文件、文字、指针
openAction->setShortcuts(QKeySequence::Open); //设置快捷键
openAction->setStatusTip(tr("打开一个文件")); //鼠标滑过,显示提示
saveAction = new QAction(QIcon(":/images/file-save"),tr("&保存..."),this);
saveAction->setShortcuts(QKeySequence::Save);
saveAction->setStatusTip(tr("保存一个文件"));
connect(openAction,&QAction::triggered,this,&MainWindow::open); //triggered与open连接起来
connect(saveAction, &QAction::triggered, this, &MainWindow::save);
QMenu *file= menuBar()->addMenu(tr("&文件"));
file->addAction(openAction);
file->addAction(saveAction);
QToolBar *toolBar=addToolBar(tr("&文件"));
toolBar->addAction(openAction);
toolBar->addAction(saveAction);
void MainWindow::open()
{
QString path = QFileDialog::getOpenFileName(this,
tr("Open File"),
"(添加路径)",
tr("Text Files(*.txt)"));
}
void MainWindow::save()
{
QString path = QFileDialog::getSaveFileName(this,
tr("Open File"),
"(添加路径)",
tr("Text Files(*.txt)"));
}
QFileDialog::getOpenFileName()
来获取需要打开的文件的路径。
QString getOpenFileName(QWidget * parent = 0,
const QString & caption = QString(),
const QString & dir = QString(),
const QString & filter = QString(),
QString * selectedFilter = 0,
Options options = 0)
- parent:父窗口。Qt 的标准对话框提供静态函数,用于返回一个模态对话框(在一定程度上这就是外观模式的一种体现);
- caption:对话框标题;
- dir:对话框打开时的默认目录,“.” 代表程序运行目录,“/” 代表当前盘符的根目录(特指 Windows 平台;Linux 平台当然就是根目录),这个参数也可以是平台相关的,比如“C:\\”等;
- filter:过滤器。使用文件对话框可以浏览很多类型的文件,但是,很多时候我们仅希望打开特定类型的文件。比如,文本编辑器希望打开文本文件,图片浏览器希望打开图片文件。过滤器就是用于过滤特定的后缀名。如果我们使用“Image Files(*.jpg *.png)”,则只能显示后缀名是 jpg 或者 png 的文件。如果需要多个过滤器,使用“;;”分割,比如“JPEG Files(*.jpg);;PNG Files(*.png)”;
- selectedFilter:默认选择的过滤器;
- options:对话框的一些参数设定,比如只显示文件夹等等,它的取值是
enum QFileDialog::Option
,每个选项可以使用 | 运算组合起来。
学习来自:
Qt 学习之路 2(17):文件对话框 - DevBean Tech Worldhttps://www.devbean.net/2012/09/qt-study-road-2-file-dialog/