相关文章推荐
月球上的镜子  ·  【Kaggle竞赛】迭代训练模型-腾讯云开发 ...·  1 年前    · 
打篮球的啄木鸟  ·  sql截取最后一个/后的字符串-掘金·  2 年前    · 
胡子拉碴的八宝粥  ·  sagemaker在终端节点部署Tensor ...·  2 年前    · 
听话的牛肉面  ·  JQuery 事件委托 事件代理 - ...·  2 年前    · 
豪爽的香烟  ·  SpringCloud获取Eureka中服务 ...·  2 年前    · 
Code  ›  “如何让QMainWindow停止/暂停执行,直到窗口关闭(不是QDialog)?”
https://www.volcengine.com/theme/5209560-OTHER-7-1
重情义的皮带
1 年前
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
文档 备案 控制台
登录 立即注册
新用户特惠 体验中心 开发者社区
新用户特惠专场爆品特价
火山引擎首页
全站搜索
OTHER
“如何让QMainWindow停止/暂停执行,直到窗口关闭(不是QDialog)?”

“如何让QMainWindow停止/暂停执行,直到窗口关闭(不是QDialog)?”

可以使用QEventLoop和QCloseEvent来实现此功能。首先,在主窗口类中定义一个私有变量m_loop来存储QEventLoop对象,然后在主窗口类中重写closeEvent 函数 ,以捕获窗口关闭事件,同时调用QEventLoop的quit 函数 来停止事件循环。最后,在需要停止/暂停执行的地方使用m_loop.exec()来开始事件循环,并在关闭窗口事件触发后停止事件循环。以下是示例代码:

from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtCore import QEventLoop
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.m_loop = QEventLoop()
    def closeEvent(self, event):
        self.m_loop.quit()
        event.accept()
if __name__ == "__main__":
    app = QApplication([])
    mainWindow = MainWindow()
    mainWindow.show()
    mainWindow.m_loop.exec_()
    app.quit()
 
推荐文章
月球上的镜子  ·  【Kaggle竞赛】迭代训练模型-腾讯云开发者社区-腾讯云
1 年前
打篮球的啄木鸟  ·  sql截取最后一个/后的字符串-掘金
2 年前
胡子拉碴的八宝粥  ·  sagemaker在终端节点部署Tensorflow模型并调用_yuxj记录学习的博客-CSDN博客
2 年前
听话的牛肉面  ·  JQuery 事件委托 事件代理 - Jrri - 博客园
2 年前
豪爽的香烟  ·  SpringCloud获取Eureka中服务的注册信息_张侦毅的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号