我正在将(别人的)代码从 pyqt5 迁移到 pyqt6,以下代码给了我一个错误:
def quitApp(self):
""" Exit application callback """
QtWidgets.qApp.quit
这似乎在 pyqt6 中不再有效(我在标题中得到了错误)。我试图找到如何在 pyqt6 中执行此操作,但不幸的是我找不到它。
大家有什么想法吗?
QtWidgets.qApp
是应用程序实例,要获取pyqt6
中的应用程序实例,您可以调用QtWidgets.QApplication.instance()
方法,但这不是必需的,因为QtWidgets.QApplication
中的所有实例方法都公开为静态方法(QtWidgets.QApplication
实现了单例模式),所以要退出,您可以调用 QtWidgets.QApplication.quit()
,其作用与 QtWidgets.QApplication.instance().quit()
相同。
这适用于
pyqt6
和 pyqt5
。
小附录:大多数方法被公开为静态方法,但不是全部,公共槽确实需要一个实例。例如。 QApplication.setStyleSheet(...) 在 PyQt6 中不起作用,但 QApplication.instance().setStyleSheet(...) 可以。