news 2026/6/9 10:13:31

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/6/8 20:27:15

学长亲荐10个AI论文软件,自考毕业论文轻松搞定!

学长亲荐10个AI论文软件&#xff0c;自考毕业论文轻松搞定&#xff01; AI工具如何助你轻松应对论文挑战 在自考学习过程中&#xff0c;毕业论文往往是最让人头疼的一环。从选题到撰写&#xff0c;再到反复修改&#xff0c;每一步都需要投入大量时间和精力。而随着AI技术的不断…

作者头像 李华
网站建设 2026/6/8 3:52:38

中高轨激光通信卫星伺服控制器抗辐照电源模块设计

摘要&#xff1a;随着中高轨道激光通信卫星技术的快速发展&#xff0c;伺服控制器作为激光链路建立与维持的核心执行单元&#xff0c;其电源模块的抗辐照特性成为保障星载设备长期可靠运行的关键要素。本文系统梳理了中高轨空间辐射环境特征及其对电源系统的损伤机理&#xff0…

作者头像 李华
网站建设 2026/5/28 18:41:41

Thiol-PEG₄-methyl,巯基聚乙二醇四单元甲基化,生物应用

Thiol-PEG₄-methyl&#xff0c;巯基聚乙二醇四单元甲基化&#xff0c;生物应用 中文名称&#xff1a;巯基聚乙二醇四单元甲基化&#xff08;Thiol-PEG₄-methyl&#xff09; Thiol-PEG₄-methyl 是一种功能化短链聚乙二醇&#xff08;PEG&#xff09;衍生物&#xff0c;其分…

作者头像 李华
网站建设 2026/6/4 5:04:40

中科院让AI大模型学会“分层思考“,底层神经元也能独当一面了

说起人工智能&#xff0c;我们通常把它当作一个整体来看待——输入问题&#xff0c;输出答案&#xff0c;就像一个黑盒子一样神秘。但中科院自动化研究所的研究团队却有了一个颠覆性的发现&#xff1a;原来AI大模型内部其实暗藏着许多"小助手"&#xff0c;每一层神经…

作者头像 李华
网站建设 2026/5/29 2:52:48

网络安全的“地基”怎么打?一文搞懂七大关键安全模型与框架

一、网络安全框架及模型是什么&#xff1f; 网络安全专业机构制定的一套标准、准则和程序&#xff0c;旨在帮助组织了解和管理面临的网络安全风险。优秀的安全框架及模型应该为用户提供一种可靠方法&#xff0c;帮助其实现网络安全建设计划。对于那些希望按照行业最佳实践来设…

作者头像 李华