news 2026/4/23 11:30:01

Qt 中将 QWidget 改为模态的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt 中将 QWidget 改为模态的方法

方法1:使用setWindowModality()

// 设置为应用程序模态(阻止与所有窗口交互) widget->setWindowModality(Qt::ApplicationModal); // 设置为窗口模态(只阻止与父窗口交互) widget->setWindowModality(Qt::WindowModal); // 设置为非模态 widget->setWindowModality(Qt::NonModal); // 示例 QWidget* modalWidget = new QWidget(); modalWidget->setWindowModality(Qt::ApplicationModal); modalWidget->show();

方法2:使用exec()方法(像 QDialog 一样)

// 自定义 QWidget 子类,添加 exec() 方法 class ModalWidget : public QWidget { Q_OBJECT public: ModalWidget(QWidget* parent = nullptr) : QWidget(parent) { setWindowFlags(Qt::Dialog); setWindowModality(Qt::ApplicationModal); } int exec() { show(); m_eventLoop.exec(); return m_result; } public slots: void accept() { m_result = QDialog::Accepted; close(); } void reject() { m_result = QDialog::Rejected; close(); } protected: void closeEvent(QCloseEvent* event) override { m_eventLoop.quit(); QWidget::closeEvent(event); } private: QEventLoop m_eventLoop; int m_result = QDialog::Rejected; }; // 使用 ModalWidget* widget = new ModalWidget(); if (widget->exec() == QDialog::Accepted) { qDebug() << "用户接受了"; }

方法3:使用setWindowModality+QEventLoop

FormVideoSnap *widget = new FormVideoSnap(nullptr); widget->setWindowModality(Qt::ApplicationModal); widget->setAttribute(Qt::WA_DeleteOnClose); QEventLoop loop; // 连接自定义aboutToClose 信号 QObject::connect(widget, &FormVideoSnap::aboutToClose, [this](const QString& filePath) { m_lastSnapshotFilePath = filePath; }); QObject::connect(widget, &FormVideoSnap::destroyed, &loop, &QEventLoop::quit); widget->show(); loop.exec(); // 阻塞直到窗口关闭
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:06:50

ModelEngine测评——Aido在线Agent应用创建测试

前言 这两天测试了一下 ModelEngine 创建AIAgent的效率与速度都还不错&#xff0c;我这里留几篇示例文章&#xff0c;跟大家描述一下具体的使用方法&#xff0c;这里我建议使用Aido的方式来创建&#xff0c;虽然可选择的模型不多&#xff0c;但是够用了呢。 主页地址&#xf…

作者头像 李华
网站建设 2026/4/17 14:17:47

type hints:Python 開發者的分水嶺,這邊是職業,那邊是愛好

Type Hints&#xff1a;Python 開發者的分水嶺前言&#xff1a;悄然來臨的變革2014年9月&#xff0c;當Guido van Rossum在Python 3.5的PEP 484提案中首次提出Type Hints概念時&#xff0c;鮮少有人預料到這將成為Python生態系統中一場靜默的革命。七年後的今天&#xff0c;Typ…

作者头像 李华
网站建设 2026/4/19 16:26:30

JVM中对于源码中符号的管理

JVM中对于源码中符号的管理 1 符号的用途 首先,我们要确定什么是符号? 以最简单的C语言为例说明 #include <stdio.h> int main(){int i = 10;printf("%d",i);return 0; }上述代码中所有的变量名和函数名是符号(Symbol),如main, i其他的如int ,return等都…

作者头像 李华
网站建设 2026/4/23 11:11:06

基于 YOLOv5n 的课堂手机检测系统:让“低头族”无处遁形

在课堂上&#xff0c;老师最头疼的场景之一&#xff0c;莫过于学生“低头玩手机”。人工巡视不仅效率低&#xff0c;而且难以兼顾全班&#xff0c;更无法形成可量化的管理依据。随着计算机视觉技术的成熟&#xff0c;能否让系统“自动看懂课堂”&#xff0c;成为智慧教学中的一…

作者头像 李华
网站建设 2026/4/20 16:52:17

基于MATLAB的HSV颜色特征杂草图像识别系统设计与实现

摘要&#xff1a;随着农业信息化和智能化的发展&#xff0c;农田杂草的快速、准确识别对提高作物产量和实现精准农业具有重要意义。针对传统人工识别效率低、主观性强的问题&#xff0c;本文设计并实现了一种基于 MATLAB 的 HSV 颜色特征杂草图像识别系统。作者&#xff1a;Bob…

作者头像 李华