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、信号

1)accepted

        当对话框被用户接受,或者使用QDialog:: accepted参数调用accept()或done()时,就会发出这个信号。

        注意,当使用hide()或setVisible(false)隐藏对话框时,不会发出这个信号。这包括在对话框可见时删除它。        

void accepted()

 2)finished

        当用户调用done()、accept()或reject()设置了对话框的结果代码时,就会发出这个信号。

        注意,当使用hide()或setVisible(false)隐藏对话框时,不会发出这个信号。这包括在对话框可见时删除它。

void finished(int result)

3)rejected

        当对话框被用户拒绝,或者使用QDialog:: rejected参数调用reject()或done()拒绝时,就会发出这个信号。

        注意,当使用hide()或setVisible(false)隐藏对话框时,不会发出这个信号。这包括在对话框可见时删除它。

void rejected()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一、安装GoLang环境和开发工具

一、安装GoLang环境 GoLang中国镜像站 下载后对应的环境包以后,一路下一步就好了,安装路径的话,尽量就安装到默认的文件目录下。 二、配置Go的环境变量 右击此电脑–>属性–>高级系统设置–>环境变量,打开环境变量设置…

MySQL高阶语句之常用查询

目录 常用查询 按关键字排序 区间判断及查询不重复记录 对结果进行分组 限制结果条目 设置别名 通配符 子查询 常用查询 (增、删、改、查) 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 …

设计模式之工厂模式(万字长文)

文章目录 概述工厂模式的优点包括工厂模式有几种主要的变体看一个具体需求使用传统的方式来完成传统的方式的优缺点 简单工厂模式基本介绍使用简单工厂模式简单工厂模式的优缺点优点:缺点: 工厂方法模式看一个新的需求思路 1思路 2工厂方法模式介绍工厂方…

生成式AI,赋能数字劳动力的关键工具

人们认为,生成式人工智能是一种可以让他们用自己的话来提问或生成副本和图像的工具。事实也是如此,人工智能在这两方面上都做的非常好,但让人意想不到的是,它还蕴含着改变我们个人和专业工作的巨大潜力,能帮我们访问、…

Unity记录4.5-存储-随角色加载的Tilemap

文章首发见博客:https://mwhls.top/4820.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议,私信不回。 汇总:Unity 记录 摘要:随着角色移动而动态加载的tilemap。 思路-2023/08/18 …

nextTick原理

nextTick 是 Vue 提供的一个异步方法,用于在 DOM 更新之后执行回调函数。它的原理是利用 JavaScript 的事件循环机制来实现异步执行。 具体来说,当我们调用 nextTick 方法时,Vue 会将传入的回调函数添加到一个队列中。在下一个事件循环中&am…

Django(7)-项目实战-发布会签到管理系统

本文使用django实现一个简单的发布会签到管理系统 登录功能 模板页面 sign/templates/index.html <!DOCTYPE html> <html> <head><title>Login Page</title> </head> <body><h1>发布会管理</h1><form action=&qu…

springboot实战(一)之项目搭建

环境准备 ideajdk1.8springboot版本 2.7.15 项目开始 1.打开idea&#xff0c;点击new project 2.选择spring initillizr 核对&#xff1a;Server Url是否是&#xff1a;start.spring.io&#xff0c;然后根据自己依次设置项目名称、存储位置和包名&#xff0c;如下&#xff…

北京开发APP的费用明细

开发APP项目时&#xff0c;在功能确定后需要知道有哪些可能的费用&#xff0c;安排项目预算。北京开发APP的费用明细可能会包括以下几个部分&#xff0c;每个部分都会产生一些费用。今天和大家分享APP费用明细有哪些&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&…

C语言 - 程序的分文件编写

说明过程 C语言程序可以通过分文件编写来提高代码的结构性和可维护性。下面是一个简单的示例&#xff0c;展示了C语言程序如何分文件编写&#xff1a; 创建多个源文件&#xff1a;将程序的不同部分分别写在不同的源文件中&#xff0c;每个文件包含一个或多个相关的函数。比如&…

vue2 自定义指令,插槽

一、学习目标 1.自定义指令 基本语法&#xff08;全局、局部注册&#xff09;指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 二、自定义指令 1.指令介绍 内置指令&#xff1a;v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令&#xff0c;…

大数据之Maven

一、Maven的作用 作用一&#xff1a;下载对应的jar包 避免jar包重复下载配置&#xff0c;保证多个工程共用一份jar包。Maven有一个本地仓库&#xff0c;可以通过pom.xml文件来记录jar所在的位置。Maven会自动从远程仓库下载jar包&#xff0c;并且会下载所依赖的其他jar包&…

《信息系统项目管理师教程(第4版)》第17章 采购管理、合同管理 知识点整理,xmind思维导图

已上传采购管理xmind思维导图&#xff0c;需要的同学可以直接下载哦。 一、规划采购管理 二、实施采购 三、控制采购 四、合同管理 4.1 合同类型 4.2 合同管理过程 签订履行变更档案&#xff0c;合同档案管理是整个合同管理的基础&#xff0c;要求采用电脑打印文本&#xff…

考研408 | 【操作系统】终章

I/O设备的基本概念和分类 I/O设备&#xff1a; I/O设备的分类 1.按使用特性&#xff1a; 2.按传输速率分类&#xff1a; 3.按信息交换的单位分类&#xff1a; 总结&#xff1a; I/O控制器 I/O设备的机械部件&#xff1a; I/O设备的电子部件&#xff08;I/O控制器&#…

国标视频融合云平台EasyCVR视频汇聚平台的应用场景及其功能说明

一、平台简介 EasyCVR国标视频融合云平台是一款基于端-边-云一体化架构的视频融合AI智能分析网关平台。EasyCVR平台支持视频汇聚、融合管理&#xff0c;兼容多类型设备、多协议接入。其提供的视频功能包括&#xff1a;视频监控、无插件直播录像、云存储、检索回放、智能告警、…

uniapp微信小程序使用stomp.js实现STOMP传输协议的实时聊天

简介&#xff1a; 原生微信小程序中使用 本来使用websocket&#xff0c;后端同事使用了stomp协议&#xff0c;导致前端也需要对应修改。 如何使用 1.yarn add stompjs 2.版本 “stompjs”: “^2.3.3” 3.在static/js中新建stomp.js和websocket.js&#xff0c;然后在需要使用…

E8267D 是德科技矢量信号发生器

描述 最先进的微波信号发生器 安捷伦E8267D PSG矢量信号发生器是业界首款集成式微波矢量信号发生器&#xff0c;I/Q调制最高可达44 GHz&#xff0c;典型输出功率为23 dBm&#xff0c;最高可达20 GHz&#xff0c;对于10 GHz信号&#xff0c;10 kHz偏移时的相位噪声为-120 dBc/…

Linux防火墙命令

开启防火墙 systemctl start firewalld关闭防火墙 systemctl stop firewalld # 暂时关闭防火墙 systemctl disable firewalld # 永久关闭防火墙(禁用开机自启) systemctl enable firewalld # 永久开启防火墙(启用开机自启)重启防火墙 systemctl restart firewalld重载规则 …

【UBuntu 20.04环境配置】

一、基础环境搭建 1.1 直接安装–官网搜索下载安装即可 安装搜狗输入法安装chrome安装Typora安装vscode 1.2 C环境配置 安装g、gcc等&#xff0c;一般Ubuntu20.04 的build-essential对应gcc和g9.4.0的版本。 直接使用命令安装和使用build-essential的区别为&#xff1a;区别…

【C51基础实验 LED流水灯】

51单片机项目基础篇 LED流水灯1、硬件电路设计和原理分析2、软件设计2.1、利用循环和移位操作符功能实现&#xff1a;LED流水灯2.2、利用利用封装好的库函数功能实现&#xff1a;LED流水灯 3、编译结果4、结束语 LED流水灯 前言&#xff1a; 前几篇学会了LED驱动原理&#xff…