当前位置: 首页 > news >正文

Qt中的标准对话框

Qt中的标准对话框

QDialog QColorDialog QErroeMessage QFileDialog QFontDialog QInputDialog QMessageBox QWizard

一. 消息对话框

  1. 使用场景:

    为用户提示重要信息

    强制用户进行操作选择

    请添加图片描述

  2. 基本使用

    QMessageBox msg(this);
    msg.setWindowTitle("message dialog");
    
    msg.setText("This is a message dialog!");
    
    //setIcon可选择的图标
    //QMessageBox::NoIcon  //不显示图标,默认状态
    //QMessageBox::Question
    //QMessageBox::Information
    //QMessageBox::Warning
    //QMessageBox::Critical
    msg.setIcon(QMessageBox::Critical);
    
    //添加标准的按钮
    msg.setStandardButtons(QMessageBox::Ok|QMessageBox::Close|QMessageBox::SaveAll);
    
    msg.exec();
    

    四个图标对应

    请添加图片描述

    添加按钮的效果

    请添加图片描述

二. 文件对话框

  1. 使用场景:

    打开文件 Open Mode

    保存文件 Save Mode

  2. 基本使用

    QFileDialog dlg(this); //定义一个文件对话框
    
    //dlg.setAcceptMode(QFileDialog::AcceptSave); //设置为保存模式
    //dlg.setFilter(QDir::Dirs);
    dlg.setAcceptMode(QFileDialog::AcceptOpen); //设置为打开模式
    dlg.setFilter(QDir::Files);
    dlg.setFileMode(QFileDialog::ExistingFiles);
    
    if( dlg.exec() == QFileDialog::Accepted )
    {
        QStringList fs = dlg.selectedFiles();
    
        for(int i=0; i<fs.count(); i++)
        {
            qDebug() << fs[i];
        }
    }
    

    请添加图片描述

三. 颜色对话框

  1. QColor表示颜色的方式

    RGB: 红绿蓝为基准的三色模型

    HSV: 以色调、饱和度、明度额外i基准的六角锥体模型

    CMYK: 以天蓝、品红、黄色、黑为基准的全彩印刷色彩模型

  2. 使用示例

    QColorDialog dlg(this);
    
    dlg.setWindowTitle("Color Editor");   //窗口标题
    dlg.setCurrentColor(QColor(100, 111, 222)); //窗口内容  设置字体颜色
    
    if( dlg.exec() == QColorDialog::Accepted )
    {
        QColor color = dlg.selectedColor();
    
        qDebug() << color;
        qDebug() << color.red();
        qDebug() << color.green();
        qDebug() << color.blue();
        qDebug() << color.hue();
        qDebug() << color.saturation();
        qDebug() << color.value();   //饱和度
    }
    

    请添加图片描述

四. 输入对话框

  1. 使用场景:

    需要临时进行数据输入的场合

  2. 使用实例

    QInputDialog dlg(this);  //定义输入对话框对象
    
    dlg.setWindowTitle("Input Test");  //对话框标题
    dlg.setLabelText("Please input a string:"); 
    dlg.setInputMode(QInputDialog::TextInput);  //数据类型为字符串
    
    if( dlg.exec() == QInputDialog::Accepted )
    {
        qDebug() << dlg.textValue();
    }
    

    请添加图片描述
    请添加图片描述
    请添加图片描述

五. 进度对话框( QProgressDialog)

  1. 使用场景:

    用于进度显示

    用于需要用户等待的场合

  2. 使用实例

    //定义一个进度对话框对象
    QProgressDialog dlg(this);
    
    //设置相关属性
    dlg.setWindowTitle("Updating...");    //窗口标题
    dlg.setLabelText("Downloading update from server..."); //消息内容
    dlg.setMinimum(0);   
    dlg.setMaximum(100);
    dlg.setValue(35); 
    
    // create a new thread   启动一个后台的工作线程
    
    //没有if语句,因为进度对话框比较特殊,用户只能在此处等待
    dlg.exec();
    

    请添加图片描述

相关文章:

  • 布局管理器
  • Qt工程添加资源文件(例如:图标)
  • 主窗口 (QMainWindow)
  • C++中的explicit
  • Qt中的事件处理
  • 使用二阶构造实现计算器页面的构造过程
  • Linux内核的CodingStyle
  • 常见面试题及面试准备阶段要思考的问题
  • Qt中事件的传递过程
  • Qt事件初探-发现事件
  • Qt中TCP通信的实现
  • ubuntu下MQTT的移植安装
  • MQTT协议 发布/订阅 机制初探 - (模拟物联网传感器设备和控制模块间的通信)
  • MQTT初探
  • VScode快捷键
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Electron入门介绍
  • express + mock 让前后台并行开发
  • js
  • js对象的深浅拷贝
  • Octave 入门
  • SAP云平台里Global Account和Sub Account的关系
  • Vim Clutch | 面向脚踏板编程……
  • vue数据传递--我有特殊的实现技巧
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 微信小程序:实现悬浮返回和分享按钮
  • 微信小程序设置上一页数据
  • 问题之ssh中Host key verification failed的解决
  • 一道面试题引发的“血案”
  • 移动端 h5开发相关内容总结(三)
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 《天龙八部3D》Unity技术方案揭秘
  • 选择阿里云数据库HBase版十大理由
  • 整理一些计算机基础知识!
  • ​Spring Boot 分片上传文件
  • #大学#套接字
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (poj1.3.2)1791(构造法模拟)
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (十一)c52学习之旅-动态数码管
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 微服务 服务保护 自动重试 Polly
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net操作Excel出错解决
  • .Net程序帮助文档制作
  • .NET的数据绑定
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [AutoSar]BSW_OS 02 Autosar OS_STACK