模态和非模态

        模态(Modal)和非模态(Non-modal)是窗口或对话框在应用程序中显示和交互的两种方式,它们直接影响用户在界面中的操作顺序和自由度。

1. 模态对话框(Modal Dialog)

模态对话框是一种阻塞窗口,它会阻止用户与应用程序中的其他窗口进行交互,直到用户关闭该对话框。通常情况下,当模态对话框打开时,用户必须先完成该对话框的操作(例如点击“确定”或“取消”)才能返回到主窗口或其他部分。

特点:
  • 当模态对话框显示时,用户不能与父窗口或其他窗口交互
  • 模态对话框的典型用途是需要用户做出决定或完成某项任务,比如确认对话框输入对话框警告框
  • 通过 QDialog::exec() 方法启动模态对话框,该方法会阻塞执行,直到对话框被关闭。
常见场景:
  • 当你需要强制用户完成某个操作或确认信息时,例如保存文件前的确认框、用户登录窗口等。
Qt 示例:
  • QMessageBoxQFileDialogQInputDialog 等类通常默认是模态的。
  • 启动模态对话框的典型方式是调用 exec()
QMessageBox msgBox;
msgBox.setText("Are you sure you want to delete this file?");
msgBox.exec();  // 模态,对话框阻塞,直到用户作出决定

2. 非模态对话框(Non-modal Dialog)

非模态对话框是一种不阻塞的窗口,允许用户与应用程序中的其他窗口同时进行交互。在非模态对话框显示时,用户仍然可以继续操作主窗口或其他窗口,而不必先关闭对话框。

特点:
  • 当非模态对话框打开时,用户可以自由切换到应用程序的其他部分进行操作。
  • 这种模式通常用于辅助任务,不要求用户必须立即处理该对话框。
  • 通过 QDialog::open()QWidget::show() 方法启动非模态对话框。
常见场景:
  • 当你希望提供一个可以参考或随时关闭的辅助窗口时,比如查找和替换窗口帮助窗口等。
Qt 示例:
  • 启动非模态对话框的典型方式是调用 show()open(),而不是 exec()
QDialog *dialog = new QDialog(this);
dialog->setWindowTitle("Non-modal Dialog");
dialog->show();  // 非模态,对话框显示时,主窗口仍可交互

3.总结

        那么我们说模态呢,就是一种阻塞窗口,用户和应用程序不能切换到其他窗口进行交互,会阻塞等待当前窗口选择完毕才能与其他窗口进行交互,非模态是一种非阻塞窗口,允许用户和应用程序与其他窗口进行交互,用户不必操作完当前窗口就能切换到其他窗口进行操作

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第59天|卡码网 47. 参加科学大会、94. 城市间货物运输 I

1. 卡码网 47. 参加科学大会 题目链接:https://kamacoder.com/problempage.php?pid1047 文章链接:https://www.programmercarl.com/kamacoder/0047.参会dijkstra堆.html#总结 思路依然是 dijkstra 三部曲: 1.第一步,选源点到哪个…

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 二、命令列表 2.2 class/classlo…

分享了一个支持WIN7的QGIS3.34的版本

上传分享了一个支持WIN7的QGIS3.34的版本,该版本同时也是个轻量级的QGIS,大小轻便、启动速度也快!但该版本没有Python及Python插件支持。 需要在WIN7下使用或只使用QGIS3.34核心基本功能的可以使用这个!当然这个版本也支持WIN7以上…

ARM 汇编5 数据类型

在ARMv7-M处理器中,Byte对应8bits,Halfword对应16bits, Word对应32bits。 而在展示中,我们通常会使用一位来表示4bits,也就是 1 nibble 4 bits 如下图,一个寄存器中包含8 nibbles,也就是32bits。 关于…

python基础库

文章目录 1.研究目的2.platform库介绍3.代码4.结果展示 1.研究目的 最近项目中需要利用python获取计算机硬件的一些基本信息,查阅资料,.于是写下这篇简短的博客,有问题烦请提出,谢谢-_- 2.platform库介绍 platform 库是 Python 的一个内置库,可以让我们轻松地获取…

SpringBoot教程(安装篇) | Docker Desktop的安装(Windows下的Docker环境)

SpringBoot教程(安装篇) | Docker Desktop的安装(Windows下的Docker环境) 前言如何安装Docker Desktop资源下载安装启动(重点)加入汉化包 设置加速镜像 前言 如果你在 Windows 上,确保 Docker …

短视频电影直播多功能主题第二套Streamlab主题

需要搭配苹果cms使用.本源码只是主题,非整套 适配移动端到32寸显示器,内置6种幻灯片风格,100%DIY布局功能给你自由设计模板的能力,不会代码也能随意修改布局,修改数据显示,拒绝千篇一律的网站风格

Spring Boot助力:小徐影院管理系统

第二章开发技术介绍 2.1相关技术 小徐影城管理系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言,易于学习,实用且面向用户。全球超过35%的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统,因为它…

QQ机器人搭建

使用QQ官方机器人Python SDK和三方框架搭建QQ群聊机器人 文章目录 使用QQ官方机器人Python SDK和三方框架搭建QQ群聊机器人前言编写机器人代码机器人监听群聊进行文字回复机器人监听群聊进行图片回复机器人监听群聊进行文件发送机器人监听群聊进行视频发送机器人监听群聊进行语…

OpenStack Yoga版安装笔记(十四)启动一个实例

1、官方文档 OpenStack Installation Guidehttps://docs.openstack.org/install-guide/ 本次安装是在Ubuntu 22.04上进行,基本按照OpenStack Installation Guide顺序执行,主要内容包括: 环境安装 (已完成)OpenStack…

20.指针相关知识点1

指针相关知识点1 1.定义一个指针变量指向数组2.指针偏移遍历数组3.指针偏移的补充4.指针和数组名的见怪不怪5.函数、指针、数组的结合 1.定义一个指针变量指向数组 指向数组首元素的地址 指向数组起始位置&#xff1a;等于数组名 #include <stdio.h>int main(){int ar…

不知道孩子用的台灯哪个牌子好?家长买灯看护眼台灯十大排名!

目前中国面临着严峻的近视问题&#xff0c;特别是儿童和青少年群体中的近视率持续升高&#xff0c;已经成为重大的公共卫生挑战。根据最新的数据统计&#xff0c;全国学生近视率居高不下。国家卫生健康委员会为此发布了《近视防治指南&#xff08;2024年版&#xff09;》&#…

VS开发C++项目常用基础属性配置

这篇文件简单讨论一下visual studio中项目属性的常用基础配置。 1.输出目录&#xff1a;项目目标文件生成位置。 2.中间目录&#xff1a;项目生成的中间文件所在的位置。 3.目标文件名&#xff1a;项目生成目标文件名称。 4.附加包含目录&#xff1a;三方库等头文件所在的位…

古老的啤酒酿造技艺:传承与发扬

在人类文明的浩瀚历史中&#xff0c;啤酒酿造技艺源远流长&#xff0c;承载着世代匠人的智慧与匠心。这些古老的技艺&#xff0c;不仅是一种手艺&#xff0c;更是一种文化的传承。今天&#xff0c;我们将一起走进这神秘的酿造世界&#xff0c;探寻古老啤酒酿造技艺的传承与发扬…

Json-Rpc框架(Muduo库快速上手)

阅读导航 引言一、Muduo库简介二、Muduo库常见接口1. TcpServer类基础介绍2. EventLoop类基础介绍3. TcpConnection类基础介绍4. TcpClient类基础介绍5. Buffer类基础介绍 三、Muduo库使用示例⭕英译汉服务器⭕英译汉客户端 引言 在上一篇文章中&#xff0c;我们简要介绍了在项…

https://www.typeframes.com.cn/ AI视频制作如此简单

光映是一个创新的AI驱动视频创作平台&#xff0c;提供多样化工具&#xff0c;用于生成文生视频、图生视频、长视频生成、音乐视频和虚拟形象视频。利用尖端AI技术&#xff0c;轻松制作出符合您创意构想的精彩视频 原创长视频生成&#xff1a; 特点&#xff1a; 智能匹配&#x…

一篇文章教会你使用Python中三种简单的函数

一、函数简介 所谓函数&#xff0c;就是指&#xff1a;把某些特定功能的代码组成为一个整体&#xff0c;这个整体就叫做函数。 这里插播一条粉丝福利&#xff0c;如果你正在学习Python或者有计划学习Python&#xff0c;想要突破自我&#xff0c;对未来十分迷茫的&#xff0c;可…

【步联科技身份证】 身份证读取与解析———未来之窗行业应用跨平台架构

一、身份证解析代码 C# function 身份证数据解析_湖南步联科技(wzxx) {var result {};result[xm] wzxx.substr(0, 15);result[xbdm] wzxx.substr(15, 1);result[mzdm] wzxx.substr(16, 2);result[csrq] wzxx.substr(18, 8);result[dzmc] wzxx.substr(26, 35);result[gms…

Linux权限解析

目录 shell命令以及运行原理 Linux权限概念 切换用户 Linux权限管理 文件访问者分类 文件类型和访问权限 Linux下的文件后缀 文件权限值的表示方法 文件访问权限的相关设置方法 文件掩码 目录权限 粘滞位 目录权限总结 关于权限的总结 shell命令以及运行原理 Linu…

如何配置flutter(超详细的哦)

目录 首先先去官网下载zip包 下载下来之后就是解压 配置环境变量 winr查看是否配置成功 解决报错 [!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)X cmdline-tools component is missing Android license status unknown 首先先去官…