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

Qt应用开发(基础篇)——对话框窗口 QDialog

一、前言

        QDialog类继承于QWidget,是Qt基于对话框窗口(消息窗口QMessageBox、颜色选择窗口QColorDialog、文件选择窗口QFileDialog等)的基类。

         QDialog窗口是顶级的窗口,一般情况下,用来当做用户短期任务(确认、输入、选择)或者和用户交流(提示、错误、警告、进度等)的弹窗,弹窗可以是模态modal或者非模态的,使用exec()进入模态对话框,使用show()进入非模式对话框,模式对话框可以保证子窗口一直在父窗口的顶部并默认居中显示。

        模态窗口:模态对话框是一种阻止同一应用程序中其他可见窗口输入的对话框。通常,用于向用户请求文件名或设置应用程序首选项的对话框是模态的。打开应用程序模态对话框时,用户必须在访问应用程序中的任何其他窗口之前完成与对话框的交互并关闭它。窗口模态对话框仅阻止对话框关联的窗口的访问,允许用户继续使用应用程序中的其他窗口。

QDialog *dia = new QDialog(this);
dia->resize(500,400);
dia->setWindowTitle("my dialog");
dia->setSizeGripEnabled(true);
dia->exec();

 

二、QDialog类

1、modal

        该属性表示窗口是否为模式窗口,默认为非模式对话框fase。

bool isModal() const
void setModal(bool modal)

2、sizeGripEnabled

        该属性表示窗口是否在右在下角显示一个控制大小的部件QSizeGrip,参考上例。     

bool isSizeGripEnabled() const
void setSizeGripEnabled(bool)

3、公共函数

 1)result

        返回模式对话框返回的结果,QDialog::Accepted或者QDialog::Rejected。

int result() const

        子类QMessageBox在此方法中返回的是按钮的值。 

 

2)setResult

        设置模式对话框的结果,QDialog::Accepted或者QDialog::Rejected。

void setResult(int i)

3)accept

        关闭窗口,result返回值为QDialog::Accepted。

virtual void accept()

4)reject

        关闭窗口,result返回值为QDialog::Rejected。

virtual void reject()

5)exec

        模式对话框打开窗口,并代码阻塞,知道用户关闭窗口,返回一个状态值。

virtual int exec()

6)open

        模式对话框打开窗口,并且立即返回,不会阻塞,和setModal为true,然后调用show,效果一样。

virtual void open()

7)done

        关闭对话框并将其结果代码设置为r。

        finished()信号将发出r。

        如果r是QDialog::Accepted或QDialog::Rejected,则也将分别发出Accepted()Rejected()信号。

        如果使用exec()显示此对话框,done()也会导致本地事件循环结束,并且exec()返回r。

        如果设置了Qt::WA_DeleteOnClose标志,done()将删除对话框。

virtual void done(int r)

4、信号

void accepted()
void finished(int result)
void rejected()
http://www.lryc.cn/news/143064.html

相关文章:

  • Linux系统:CentOS 7 CA证书服务器部署
  • C++图形界面编程-MFC
  • 知识扩展贴 圆越大,其圆接触的无知面就越多
  • 怎么把pdf转换成jpg格式?
  • Android SDK 上手指南||第六章 用户交互
  • Vue3+Pinia+Koa+Three.js 全栈电商项目总结复盘
  • 【大模型AIGC系列课程 2-3】动手为ChatGPT打造第二大脑
  • 【ARM AMBA AXI 入门 10 - AXI 总线 DATA信号与 STRB 信号之间的关系 】
  • 软引用的使用场景-链路日志
  • 【java】【项目实战】[外卖七]手机短信开发
  • Web 开发 Django 模板
  • 动态可编辑表单项
  • 【Docker入门第一篇】
  • 数据集收集列表(opencv,机器学习,深度学习)持续更新
  • springboot整合rabbitmq发布确认高级
  • 【linux命令讲解大全】010. mapfile命令和tempfile命令的用法及示例
  • 在 Python 中构建卷积神经网络; 从 0 到 9 的手绘数字的灰度图像预测数字
  • 前端分页处理
  • 【C语言】位操作符的一些题目与技巧
  • 爬虫逆向实战(二十二)--某恩数据电影票房
  • 火山引擎发布自研视频编解码芯片
  • 投递技术类简历的注意事项
  • 每日一题——柱状图中最大的矩形
  • Banana Pi推出基于龙芯2K1000LA处理器的信创工业控制开发平台
  • springCloud整合Zookeeper的时候调用找不到服务
  • 【kubernetes】使用kubepshere部署中间件服务
  • 如何从tabbar页面传数据
  • 软考高级系统架构设计师系列论文七十四:基于构件的软件开发
  • 图为科技_边缘计算在智能安防领域的作用
  • Android 13 - Media框架(7)- NuPlayer::Source