QT学习(四)

标准对话框

标准对话框,是 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(15):标准对话框 QMessageBox - DevBean Tech Worldhttps://www.devbean.net/2012/09/qt-study-road-2-standard-dialogs-qmessagebox/

Qt 学习之路 2(17):文件对话框 - DevBean Tech Worldhttps://www.devbean.net/2012/09/qt-study-road-2-file-dialog/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hihushine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值