PySide6 exec()函数详细教程

PySide6.QtWidgets.Application类的exec()函数使程序进入Qt主事件循环并等待直到调用exit()函数,然后返回调用exit()时设置的值,如果调用的是quit()函数,则是0;此处的exit()quit()函数是QApplication类的成员函数;

需要调用这个函数来启动事件处理;主事件循环从窗口系统接收事件并将这些事件分派给应用程序的小部件;

通常,在调用exec()之前不能进行用户交互;但可以在调用exec()之前使用像QMessageBox这样的模态小部件;

示例代码

import sys
from PySide6.QtWidgets import QApplication,QWidget,QPushButton,QVBoxLayout
from PySide6.QtCore import Slot

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.button = QPushButton("退出")
        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.button)
        self.button.clicked.connect(self.exitFunc)

    @Slot()
    def exitFunc(self):
        app.exit(1) # app.exec()将返回 1
        #app.exit(2) #app.exec()将返回2

        #app.quit() #app.exec()将返回 0

app = QApplication([])
widget = MyWidget()
widget.resize(300, 200)
widget.show()

exitCode = app.exec()
print("退出码为:",exitCode)
sys.exit(exitCode)

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/pyside6-qtwidgets-qapplication-exec.html

分类: 计算机技术
推荐阅读:
Python sorted()函数 在 Python 中,sorted() 函数用于对序列进行排序。它可以接受多种类型的输入序列,包括列表、元组、集合和字典等。
Updating crates.io index 出现错误解决方法 在向Rust项目添加依赖后尝试运行或编译,cargo管理工具会尝试更新crates.io index,当出现git配置错误可能会出现类似以下的错误:
解决rust-analyzer在rustlings中不生效的问题 rustlings是一个让你习惯阅读和编写Rust代码的项目,其中包含一些小练习;当使用VSCode打开该项目并编写练习时,rust-analyzer插件可能没有生效;
Python检查一个数是奇数还是偶数 本文将使用Python检查一个数是奇数还是偶数;偶数是能被2所整除的整数,若不是,那它就是奇数;奇数初以2的余数是1;
如何禁用VSCode后台自动更新 VSCode是我比较喜欢的IDE了,但它也会偷偷摸摸的下载更新并自动安装,而且频率非常高;我并不太喜欢软件在自己毫不知情的情况下自动完成更新,所以我决定禁止它的这种行为;
Rust语言计算斐波那契数列(Fibonacci) 本文将使用Rust语言递归实现斐波那契数列的计算;