PyQt6.QWidgets没有属性qApp

问题描述 投票:0回答:2

我正在将(别人的)代码从 pyqt5 迁移到 pyqt6,以下代码给了我一个错误:

def quitApp(self):
        """ Exit application callback """
        QtWidgets.qApp.quit

这似乎在 pyqt6 中不再有效(我在标题中得到了错误)。我试图找到如何在 pyqt6 中执行此操作,但不幸的是我找不到它。

大家有什么想法吗?

python pyqt pyqt6
2个回答
3
投票

QtWidgets.qApp
是应用程序实例,要获取
pyqt6
中的应用程序实例,您可以调用
QtWidgets.QApplication.instance()
方法,但这不是必需的,因为
QtWidgets.QApplication
中的所有实例方法都公开为静态方法(
QtWidgets.QApplication
实现了单例模式),所以要退出,您可以调用
QtWidgets.QApplication.quit()
,其作用与
QtWidgets.QApplication.instance().quit()
相同。

这适用于

pyqt6
pyqt5


0
投票

小附录:大多数方法被公开为静态方法,但不是全部,公共槽确实需要一个实例。例如。 QApplication.setStyleSheet(...) 在 PyQt6 中不起作用,但 QApplication.instance().setStyleSheet(...) 可以。

© www.soinside.com 2019 - 2024. All rights reserved.