19_Qt中的标准对话框

关键词:QMessageBoxQFileDialog

1. 标准对话框

  • Qt为开发者提供了一些可复用的对话框类型
  • Qt提供的可复用对话框全部继承自QDialog
    对话框类型
  • Qt中标准对话框遵循相同的使用方式

2. 消息对话框

  • 消息对话框的主要作用
    1) 为用户提示重要信息
    2)强制用户进行操作选择

  • 消息对话框的使用方式

    QMessageBox msg(this);  // 构造消息对话框对象

    msg.setWindowTitle("Message Title");        // 设置相关属性
    msg.setText("This is message dialog!");
    msg.setIcon(QMessageBox::Information);
    msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);

    if( msg.exec() == QMessageBox::Ok)
    {
        qDebug() << "Ok button is clicked!";
    }
  • QMessageBox中的实用函数
    // the use of information:
    QMessageBox msg(this);

    int standBtn =  msg.information(this,
                    "Message title",
                    "this is content!",
                    QMessageBox::Ok | QMessageBox::Cancel);

    if( standBtn == QMessageBox::Ok )
    {
        qDebug() << "information ok";
    }
    else if ( standBtn == QMessageBox::Cancel )
    {
        qDebug() << "information cancal";
    }

    // the use of question:
    QMessageBox msg(this);

    int ret = msg.question(this,
                           "Message title-->question",
                           "the use of question",
                           QMessageBox::Ok | QMessageBox::Cancel,
                           QMessageBox::Ok);

    if( ret == QMessageBox::Ok )
    {
        qDebug() << "question::Ok";
    }
    else if( ret == QMessageBox::Cancel )
    {
        qDebug() << "question::Cancel";
    }
    else
    {
        qDebug() << "Error";
    }

    // the use of waring:
    QMessageBox msg(this);

    int ret = msg.warning(this,
                          "Message title-->waring",
                          "the use of waring",
                          QMessageBox::Ok | QMessageBox::Cancel,
                          QMessageBox::Ok);

    if( ret == QMessageBox::Ok )
    {
        qDebug() << "waring::Ok";
    }
    else if( ret == QMessageBox::Cancel )
    {
        qDebug() << "waring::Cancel";
    }
    else
    {
        qDebug() << "Error";
    }

    // the use of critical:
    QMessageBox msg(this);

    int ret = msg.critical(this,
                          "Message title-->critical",
                          "the use of critical",
                          QMessageBox::Ok | QMessageBox::Cancel,
                          QMessageBox::Ok);

    if( ret == QMessageBox::Ok )
    {
        qDebug() << "critical::Ok";
    }
    else if( ret == QMessageBox::Cancel )
    {
        qDebug() << "critical::Cancel";
    }
    else
    {
        qDebug() << "Error";
    }

    // the use of about:
    QMessageBox msg(this);

    msg.about(this,"Message title-->about","the use of about");

3. 文件对话框

  • 文件对话框常用情形
    1) Open Mode:应用程序中需要用户打开一个外部的文件
    2) Save Mode:应用程序中需要将当前内容存储于用户指定的外部文件中

  • 文件对话框的使用方式

  • 文件类型过滤器
    1)在文件对话框中可以通过文件后缀定义过滤器
    2)过滤器定义规则:
    显示名(*.后缀1 *.后缀2 ... *.后缀N)
    如:
    "Image(*.png *.jpg *.xpm)"
    fd.setFilter(".h(*.h)");

// 文件打开对话框
void Dialog::OpenFileBtn_Clicked()
{
    QFileDialog dlg(this);

    dlg.setAcceptMode(QFileDialog::AcceptOpen);
    dlg.setFilter("cpp(*.cpp)");                   // 添加文件过滤器
    dlg.setFileMode(QFileDialog::ExistingFile);     // 选择单个文件, 如果需要选择多个文件则为:ExistingFiles

    if( dlg.exec() == QFileDialog::Accepted )
    {
        QStringList fs = dlg.selectedFiles();

        for(int i=0; i<fs.length(); i++)
        {
            qDebug() << fs[i];
        }
    }
}
// 文件存储对话框
void Dialog::SaveFileBtn_Clicked()
{
    QFileDialog dlg(this);

    dlg.setAcceptMode(QFileDialog::AcceptSave);

    if( dlg.exec() == QFileDialog::Accepted )
    {
        QStringList fs = dlg.selectedFiles();

        for(int i=0; i<fs.length(); i++)
        {
            qDebug() << fs[i];
        }
    }

}
  • QFileDialog中的实用函数

4. 小结

  • Qt中提供了多个可复用的对话框类型
    1) 继承于QDialog
    2) 遵循相同的使用方式
  • QMessageBox用于提示重要的程序信息
  • QFileDialog用于获取系统中的文件路径

声明:此文章仅是本人在学习狄泰QT实验分析课程所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • 《绿野仙踪》是一本充满神奇的书,故事中的多罗茜是一个可爱的女孩,她原本生活在没有一棵棵树,到处灰蒙...
    柴小满阅读 3,258评论 0 0
  • 人生如戏,戏如人生 每个人的一生都是独一无二的 生活看似平淡 而人生无常 每个人都有自己的故事 那些经历过的事,纵...
    JasonWe1阅读 2,241评论 0 2
  • 2017年5月3号 小雨 雨,总能和惆怅联系在一起。它能让人的心情从天堂坠入地狱,这种感觉仿佛是寒风呼啸的冰原...
    青春一去不复返丶阅读 1,657评论 0 0

友情链接更多精彩内容