Qt 模态 非模态的使用

Qt 模态 非模态的使用

在Qt中,模态(modal)和非模态(modeless)对话框之间有几个重要区别:

  1. 模态对话框

    • 模态对话框会阻止用户与其它应用程序窗口进行交互,直到对话框被关闭为止,但是并不影响 父界面的数据展示 以及业务执行。(在模态情况下,父界面的业务流程不会完全被阻塞,但事件处理和用户交互可能会受到暂时的影响,直到模态对话框关闭。)
    • 当用户与模态对话框进行交互时,程序的其余部分会被阻塞,用户无法访问主窗口或其它对话框。
    • 模态对话框通常用于需要用户立即响应的情况,例如需要用户做出确认或提供信息。
  2. 非模态对话框

    • 非模态对话框允许用户在打开的同时继续与应用程序的其余部分进行交互。
    • 用户可以同时操作主窗口和非模态对话框,而无需等待对话框关闭。
    • 非模态对话框通常用于允许用户在进行其他操作时访问辅助功能或提供额外信息。

在Qt中,可以使用QDialog类创建模态或非模态对话框。要创建模态对话框,可以使用exec()方法,而要创建非模态对话框,则可以使用show()方法。

代码使用:

代码是结合项目制作蒙版使用(代码不一定百分之百直接使用), 结合自己使用场景使用修改

QWidget的模态使用:

两种使用方法:
  • setWindowModality(Qt::ApplicationModal);
  • setAttribute(Qt::WA_ShowModal, true);
#include <QApplication>
#include<QDialog>
#include<QDebug>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget *pWidget = new QWidget();pWidget->setWindowTitle(QStringLiteral("主界面"));pWidget->show();QWidget *sWidget = new QWidget(pWidget);    //导航栏子只有一个图标sWidget->setWindowTitle(QStringLiteral("子界面"));sWidget->setFixedSize(QSize(300,300));sWidget->setWindowFlags(Qt::FramelessWindowHint|Qt::Dialog);sWidget->setWindowOpacity(0.4);sWidget->setWindowModality(Qt::ApplicationModal);sWidget->show();return a.exec();
}
#include <QApplication>
#include<QDialog>
#include<QDebug>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget *pWidget = new QWidget();pWidget->setWindowTitle(QStringLiteral("主界面"));pWidget->show();QWidget *sWidget = new QWidget(pWidget);    //导航栏子只有一个图标sWidget->setWindowTitle(QStringLiteral("子界面"));sWidget->setFixedSize(QSize(300,300));sWidget->setWindowFlags(Qt::FramelessWindowHint|Qt::Dialog);sWidget->setWindowOpacity(0.4);sWidget->setAttribute(Qt::WA_ShowModal, true);sWidget->show();return a.exec();
}

QDialog的使用:

非模态:
#include <QApplication>
#include<QDialog>
#include<QDebug>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget *pWidget = new QWidget();pWidget->setWindowTitle(QStringLiteral("主界面"));pWidget->show();QDialog *sWidget = new QDialog();sWidget->setWindowTitle(QStringLiteral("子界面"));sWidget->setFixedSize(QSize(300,300));sWidget->setWindowFlags(Qt::FramelessWindowHint|Qt::Dialog);sWidget->setWindowOpacity(0.4);sWidget->show();return a.exec();
}
模态:
#include <QApplication>
#include<QDialog>
#include<QDebug>
int main(int argc, char *argv[])
{QApplication a(argc, argv);QWidget *pWidget = new QWidget();pWidget->setWindowTitle(QStringLiteral("主界面"));pWidget->show();QDialog *sWidget = new QDialog();sWidget->setWindowTitle(QStringLiteral("子界面"));sWidget->setFixedSize(QSize(300,300));sWidget->setWindowFlags(Qt::FramelessWindowHint|Qt::Dialog);sWidget->setWindowOpacity(0.4);sWidget->exec();// 或者// sWidget->setModal(true);// sWidget->show();return a.exec();
}

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

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

相关文章

FastAPI+Nuxt单域名部署实践:无需子域名的前后端分离解决方案

FastAPINuxt单域名部署实践&#xff1a;无需子域名的前后端分离解决方案 注&#xff1a;此博客写于2024年5月23日。FastAPI已经到0.111.0 版本了。 背景历史 上一个接手网站的人不管了&#xff1a;Wordpress —重写–> Vue 发现Vue做SEO优化很麻烦&#xff1a;Vue —重构…

Spring6笔记(五):国际化、数据校验、提前编译

九、国际化&#xff1a;i18n 9.1 i18n概述 9.2 Java国际化 9.3 Spring6国际化 十、数据校验&#xff1a;Validation 10.1 Spring Validation 概述 10.2 实验一&#xff1a;通过 validator 接口实现 10.3 实验三&#xff1a;Bean Validation 注解 10.4 实验四&#xff1a;实现…

鸿蒙 DevEcoStudio:通知栏通知实现

【使用notificationManager实现通知栏功能】 【普通通知、长文本通知、多行通知、图片通知】 import notificationManager from ohos.notificationManager import image from ohos.multimedia.image Entry Component struct Index {State message: string Hello World// 将图…

html5 笔记01

01 表单类型和属性 input的type属性 单行文本框: typetext 电子邮箱 : typeemail 地址路径 : type url 定义用于输入数字的字段: typenumber 手机号码: typetel 搜索框 : typesearch 定义颜色选择器 : typecolor 滑块控件 : typerange 定义日期 :typedate 定义输入时间的控件…

PL/SQL语句中的函数、游标、及存储过程的应用

在PL/SQL&#xff08;ProceduralLanguage/SQL&#xff09;中&#xff0c;游标、函数和存储过程是重要的编程结构&#xff0c;能够极大地增强Oracle数据库的处理能力。 下面分别介绍它们的语法和应用。 1.游标&#xff08;Cursor&#xff09; 游标简介 游标用于在PL/SQL代码中逐…

04-Json/Ajax/Vue的知识

1. Json结构 1.1 Json概述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;实现数据前后端交互。 它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 JSON采用完全独立于程序语言的文本格式。这些特性使JSON成为理想的数据交换…

英码科技算能系列边缘计算盒子再添新成员!搭载TPU处理器BM1688CV186AH,功耗更低、接口更丰富

在数据呈现指数级增长的今天&#xff0c;越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长&#xff0c;对智能算力的需求也不断增强。为应对新的市场趋势&#xff0c;英码科技凭借自身的硬件研发优势&#xff0c;携手算能相继推出了基于BM1684的边缘计算盒…

5.23.1 深度学习在乳腺癌成像中的应用

乳腺成像在早期发现乳腺癌以及在治疗期间监测和评估乳腺癌方面发挥着重要作用。最常用的乳腺成像方式是数字乳房X线摄影、数字乳腺断层合成、超声和磁共振成像。 传统的 CAD 系统基于传统的机器学习 (ML) 技术&#xff1b;预定义&#xff08;手工制作&#xff09;的特征是系统…

【堡垒机小知识】堡垒机和接口机的重要区别分析

在企业IT架构管理中&#xff0c;接口机和堡垒机各自扮演着不可或缺的角色。但不少IT小伙伴对于两者不是很了解&#xff0c;不知道两者之间有什么区别&#xff0c;今天我们就来一起分析一下。 堡垒机和接口机的重要区别分析 1、功能区别 接口机主要用于数据库层面的数据交换和…

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和锁,线程同步和条件变量,线程其他知识点

Linux多线程系列2: 模拟封装简易语言级线程库,线程互斥和互斥锁,线程同步和条件变量,线程其他知识点 1.前言 一.模拟C11线程库自己封装简易语言级线程库1.实现框架2.迅速把构造等等函数写完3.start和work1.尝试一2.尝试二3.最终版本4.给出代码 二.模拟实现多线程(为编写线程池做…

代码随想录训练营Day34:背包问题解决打家劫舍

1.198打家劫舍 1.dp数组的含义&#xff1a;dp[i]表示从第零个偷到第i个能够偷到的最大价值。 2.递推公式&#xff1a;分成两种情况&#xff1a; 偷第i个的情况下的最大值&#xff0c;注意此时第i-1个肯定是不偷的&#xff0c;所以此时dp[i] dp[i-2]nums[i];>dp[j] dp[j…

Unity数据持久化2——XML

简介&#xff1a; 基础知识 XML文件格式 XML基本语法 XML属性 练习&#xff1a; C#读取存储XML XML文件存放位置 读取XML文件 练习&#xff1a; 存储修改XML文件 练习&#xff1a; 总结 实践小项目 必备知识点 必备知识点——C#中XML序列化 必备知识点——C#中XML反序列化 必备…

java 线程执行原理,java线程在jvm中执行流程

java 线程执行原理&#xff0c;java线程在jvm中执行流程 从jvm视角看java线程执行过程 ##首先thread.c注册jni函数 JNIEXPORT void JNICALL Java_java_lang_Thread_registerNatives(JNIEnv *env, jclass cls) {(*env)->RegisterNatives(env, cls, methods, ARRAY_LENGTH(…

第八课,分支语句嵌套、随机数函数、初识while循环

一&#xff0c;分支结构的嵌套语法 在 Python 中&#xff0c;分支结构可以嵌套&#xff0c;这意味着你可以在一个条件语句中包含另一个条件语句。嵌套的分支结构可以让你更灵活地控制程序的逻辑流程。 怎么理解呢&#xff1f;打个比方&#xff1a;放学后&#xff0c;请三年级…

【MySQL精通之路】MySQL8.0新增功能-原子DDL语句支持

太长不看系列&#xff1a; 本文一句话总结&#xff0c;MySQL8.0支持多条DDL语句执行时的原子性了&#xff08;仅限Innodb&#xff09; 本文属于下面这篇博客的子博客&#xff1a; 【MySQL精通之路】MySQL8.0官方文档-新增功能 1.意义描述 MySQL 8.0支持原子数据定义语言&…

知乎广告推广开户最低需要多少钱?

精准高效的广告推广&#xff0c;是企业成功的关键&#xff0c;知乎作为知识分享与交流的高端平台&#xff0c;汇聚了大量高质量用户群体&#xff0c;无疑是品牌传播与产品推广的黄金之地。云衔科技作为您数字营销旅程中的得力伙伴&#xff0c;正以专业的知乎广告开户及代运营服…

快速搭建本地全文搜索

MeiliSearch 说起全文检索&#xff0c;在项目开发中&#xff0c;用的最多的就是 ElaticSearch 了&#xff0c;ElaticSearch 是基于 Apache Lucene 开发的全文检索服务&#xff0c;是一个端到端的解决方案&#xff0c;因此&#xff0c;部署和维护都非常复杂。今天介绍的这个全文…

AI配音可以商用吗?

随着人工智能技术的迅猛发展&#xff0c;AI配音技术在近几年的进步尤为显著。从最初的机械合成音到如今的智能语音合成&#xff0c;AI配音已经在广告、教育、媒体等领域中崭露头角&#xff0c;展现出其无限的潜力和广阔的应用空间。 AI配音技术的发展历程 AI配音技术起源于语…

如何在go项目中实现发送邮箱验证码、邮箱+验证码登录

前期准备 GoLand &#xff1a;2024.1.1 下载官网&#xff1a;https://www.jetbrains.com/zh-cn/go/download/other.html Postman&#xff1a; 下载官网&#xff1a;https://www.postman.com/downloads/ 效果图(使用Postman) Google&#xff1a; QQ&#xff1a; And …

【星海随笔】微信小程序(二)

WXML 模板语法 - 数据绑定 在data中定义页面的数据 在页面对应的 .js 文件中&#xff0c;把数据定义到 data 对象中即可&#xff1a; Page({data: {// 字符串类型的数据info: init data,// 数据类型的数据msgList: [{msg: hello},{msg: world}]} })Mustache 语法的格式 把 …