Qt基础对话框QDialog

模态显示对话框

调用exec方法可以使得对话框模态显示,但是一个阻塞函数

[virtual slot] int QDialog::exec()

对话框的三个槽函数

  • accept
  • [virtual slot] void QDialog::accept();
  • reject
  • [virtual slot] void QDialog::reject()
  • done
  • [virtual slot] void QDialog::done(int r)

对话框内部调用上面三个槽函数都会使得对话框消失并使exec()阻塞函数返回,并设置exec()函数的返回值

  • accept:将exec()返回值置为QDialog::Accepted(就是1),同时会发射accept的信号
  • reject:将exec()返回值置为QDialog::Rejected(就是0),同时会发射reject的信号
  • done:将exec()返回值置为done方法的参数r,比如调用done(100),那么exec函数的返回值就是100,同时会发射finished(r)的信号

获取返回值

int QDialog::result() const

对话框退出时的返回值除了可以通过exec()函数获取,还可以通过result方法获取

举例

对话框添加3个按钮,点击后分别调用3个槽函数,在main函数中打印对话框的返回值

 点击accpt:

点击reject:

点击done:

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include<QPushButton>class Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = nullptr)    : QDialog(parent){resize(400,300);QPushButton* btn_accept=new QPushButton("accept",this);btn_accept->setGeometry(0,0,100,50);QPushButton* btn_reject=new QPushButton("reject",this);btn_reject->setGeometry(0,80,100,50);QPushButton* btn_done=new QPushButton("done",this);btn_done->setGeometry(0,180,100,50);connect(btn_accept,&QPushButton::clicked,this,&QDialog::accept);connect(btn_reject,&QPushButton::clicked,this,&QDialog::reject);connect(btn_done,&QPushButton::clicked,this,[=](){this->done(1000);});}~Dialog()=default;
};
#endif // DIALOG_H
#include "dialog.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog d;auto ret=d.exec();if(ret==QDialog::Rejected){qDebug()<<"reject";}else if(ret==QDialog::Accepted){qDebug()<<"accept";}else{qDebug()<<"done";}qDebug()<<"返回值:"<<d.result();return a.exec();
}

学习链接:https://github.com/0voice

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

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

相关文章

鸢尾花书实践和知识记录[6-23数据聚类]

文章目录 思维导图数据聚类和引例基于图论的聚类算法算法流程1构造数据构造距离矩阵相似度相似度矩阵创建图 拉普拉斯矩阵标准拉普拉斯矩阵(Combinatorial Laplacian)归一化拉普拉斯矩阵 (Normalized Laplacian)无标度拉普拉斯矩阵 (Signless Laplacian)归一化对称拉普拉斯矩阵…

CSP-J

CSP那些事儿 OI赛制是啥OI赛制下的CCF-CSPCSP简介CSP-J考试&#xff08;仅山东&#xff09;考试时间考试地点考试结构 写在最后有趣的代码&#xff1a; OI赛制是啥 OI赛制&#xff0c;不详细说了&#xff0c;就是一股脑做好几个题&#xff0c;一起提交的比赛&#xff08;通俗易…

Vue深入了解

Vue深入了解 MVVMv-model (双向数据绑定原理)异步更新keep-alive原理$nextTick原理computed 和 watch 的区别css-scoped虚拟DOMVuex && PiniaVue-router原理proxy 与 Object.defineProperty组件通信方式 MVVM <!DOCTYPE html> <html lang"en">&…

怎么把一段音频的人声和背景音乐分开?

在数字音频处理中&#xff0c;将一段音频中的人声和背景音乐分开是一个复杂但又常见的需求。这种技术广泛应用于音乐制作、影视后期、广告制作等多个领域。本文将为你详细解析如何通过不同的方法实现这一目标&#xff0c;帮助你更好地掌握音频分离技术。 一、音频分离的基本概念…

关于C语⾔内存函数 memcpy memmove memset memcmp

memcpy使⽤和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&am…

M3DM代码阅读

文章目录 代码流程训练中期融合模型fusion_pretrain.py提取特征中期融合并决策main.py 代码流程 预处理preprocessing.py 训练中期融合模型fusion_pretrain,py 提取特征中期融合并决策main.py 训练中期融合模型fusion_pretrain.py fusion_pretrain,py 调用engine_fusion_pre…

基于方块编码的图像压缩matlab仿真,带GUI界面

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 编码单元的表示 4.2编码单元的编码 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 下图是随着方块大小的变化&#xff0c;图像的压缩率以及对应的图像质量指标PSN…

本地生活服务项目入局方案解析!本地生活服务商系统能实现怎样的作业效果?

当前&#xff0c;各大平台的本地生活服务业务日渐兴盛&#xff0c;提高创业者入局意向的同时&#xff0c;也让本地生活服务项目有哪些等问题也成为了多个创业者社群中的热议对象。而从目前的讨论情况来看&#xff0c;在创业者们所询问的众多本地生活服务项目中&#xff0c;通过…

uniapp 游戏 - 使用 uniapp 实现的扫雷游戏

0. 思路 1. 效果图 2. 游戏规则 扫雷的规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。一个非雷格中的数字表示其相邻 8 格子中的雷数,你可以利用这个信息推导出安全格和雷的位置。你可以用右键在你认为是雷的地方插旗(称为标…

Chromium 中chrome.bookmarks扩展接口c++实现

一、扩展接口定义 chrome.bookmarks 使用 chrome.bookmarks API 创建、整理以及以其他方式操纵书签。另请参阅覆盖网页&#xff08;可用于创建自定义“书签管理器”页面&#xff09;。 更多参考chrome.bookmarks | API | Chrome for Developers (google.cn) 扩展可以请从…

安卓/iOS H5传递动态参数方法,App渠道归因方案

需求和痛点 负责渠道分发的部门都需要收集区分不同安装渠道的转化量&#xff08;注册、付费等数据&#xff09;做数据分析&#xff0c;通常包括官网跳转、KOL营销、用户分享、广告投放、活动拉新等多个渠道。 场景 用户在网页上进行用户行为&#xff0c;产生了数据&#xff0c…

Vue 项目文件大小优化

优化逻辑 任何优化需求&#xff0c;都有一个前提&#xff0c;即可衡量。 那 Vue 加载速度的优化需求&#xff0c;本质上是要降低加载静态资源的大小。 所以&#xff0c;优化前&#xff0c;需要有一个了解项目现状的资源加载大小情况。 主要分 3 步走&#xff1a; 找到方法测…

ZYNQ使用XGPIO驱动外设模块(前半部分)

目录 目录 一、新建BD文档&#xff0c;添加ZYNQ处理器 1.BD文档: 2.在Vivado中&#xff0c;BD文件的生成过程通常包括以下步骤&#xff1a; 1)什么是Tcl Console: 3.PL部分是FPGA可编程逻辑部分&#xff0c;它提供了丰富的IO资源&#xff0c;可以用于实现各种硬件接口和功…

3dsMax添加天空盒

点击渲染&#xff0c;环境 &#xff0c; 点击位图 找到要设置的天空HDR&#xff0c;可以使用HDR(EXR)贴图 一个可以下载HDR贴图的网站 https://polyhaven.com/hdris在渲染的时候不要使用使用微软输入法&#xff0c;3dsmax会卡死&#xff0c; 在渲染的时候不要使用使用微软…

架构师之路-学渣到学霸历程-10

文件传输讲解 今天分享两个文件传输的命令&#xff1b; 这个实验做起来也是非常简单的&#xff0c;可以跟着去做就能够实现了&#xff1b; 增强一下自己的成就感也不错&#xff1b; 1.scp命令 作用&#xff1a;加码的方式在本地主机和远程主机之间复制文件语法&#xff1a;s…

【Kubernetes】常见面试题汇总(五十九)

目录 129.问题&#xff1a;pod 使用 PV 后&#xff0c;无法访问其内容&#xff1f; 130.查看节点状态失败&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xf…

《向量数据库指南》 ——KG-RAG 新突破:有限跳数假设下的高效解法

我们观察到在实际的 KG-RAG 场景中,存在跳数有限性假设:在 KG-based RAG 中,实际问的 query 问题的查询路由只需要在知识图谱中进行有限的,且很少的跳数(如少于4跳)的查询,而并不需要在其中进行非常多次跳数。 我们的跳数有限性假设基于两点很重要的观察:1. query 复杂…

Flutter全局统一自定义导航栏返回按钮

Flutter全局统一自定义导航栏返回按钮 在Flutter开发中&#xff0c;导航栏&#xff08;AppBar&#xff09;是用户界面的重要组成部分&#xff0c;它不仅提供了页面标题&#xff0c;还可能包含返回按钮、导航按钮等。默认情况下&#xff0c;每个Scaffold的AppBar都会包含一个返…

Iceberg Catalog 的实现和迁移

Iceberg Catalog 的需求 Iceberg Catalog 的接口定义了各种 Catalog 需要实现的方法&#xff0c;主要包括列出存在的表&#xff0c;创建表&#xff0c;删除表&#xff0c;检查表是否存在&#xff0c;给表改名。 如果一个 Iceberg catalog 使用在生产中&#xff0c;主要需是原…

UE5运行时动态加载场景角色动画任意搭配-场景角色相机动画音乐加载方法(三)

1、将场景打包为Pak并加载 1、参考这篇文章将场景打包为pak,UE4打包并加载Pak-Windows/iOS/Android不同平台Editor/Runtime不同运行模式兼容 2、在Mount Pak后直接打开Map即可 void UMapManager::OpenMap(FString Path) {UWorld* World = UGlobalManager::GetInstance()->…