微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QDialog、QMessageBox使用

QDialog相关

自定义dialog如果不指定父窗口,则为顶层dialog;指定父类为某一个窗口,dialog会弹出在指定父类窗口的中心。常见的有QColorDialog:选择颜色;QFileDialog:选择文件或者目录;QFontDialog:选择字体;QInputDialog:允许用户输入一个值,并将其值返回;
QMessageBox: 模态对话框,用于显示信息、询问问题等;QPageSetupDialog: 为打印机提供纸张相关的选项;

模态、非模态设置

模态

  1. 应用程序级别的模态:dialog不消失不能对其他所有窗口进行操作。使用QDialog::exec()调用dialog显示
  2. 窗口级别的模态:dialog不消失不能对父窗口操作。使用QDialog::open()调用显示

非模态

dialog.show()不会阻塞线程

QMessageBox的使用

  1. 窗口类型不同,icon不同,有以下几种:
    QMessageBox::NoIcon
    QMessageBox::Question
    QMessageBox::information
    QMessageBox::Warning
    QMessageBox::Critical
  2. buttom有以下种类:
    QMessageBox::NoButton
    QMessageBox::Ok
    QMessageBox::Cancel
    QMessageBox::Yes
    QMessageBox::No
    QMessageBox::Abort
    QMessageBox::Retry
    QMessageBox::Ignore
    QMessageBox::YesAll
    QMessageBox::NoAll
  3. 使用实例
if(ui->lineEdit->text() == "")
    {
        QMessageBox messageEditMaterial(QMessageBox::Warning,"提示 ","请输入素材名",QMessageBox::NoButton);
        messageEditMaterial.exec();
        this->show();
    }
    else
    {
        sendDate(ui->lineEdit->text());
        this->close();
    }

QFileDialog的使用

  1. 常用函数
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,每个选项可以使用 | 运算组合起来。
2. 实际使用

QStringList fileNameList = QFileDialog::getopenFileNames(this,"文件",".","图片文件(*.png *.jpg *.bmp *.mp4)");
    QString  file_name, file_path;
    QFileInfo file(fileNameList.at(i))//逻辑代码,有i个文件获取
    file_name = file.fileName();
    file_path = file.filePath();
    

原文地址:https://www.jb51.cc/wenti/3280840.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐