如何获取当前的QApplication?

How to get the current QApplication?

我正在尝试使用 pyQt5 获取对当前 QApplication 对象的引用,但找不到该函数。我对 "pyQt get current QApplication" 的搜索显示了有关如何创建 QApplication 的结果。所以我的问题是:

是否有全局 QApplication 对象,如果有,如何获取对现有(当前)应用程序的引用。

我问的原因是我想测试调试代码是否在 Qt GUI 应用程序中 运行。然后,如果在 Qt 应用程序中使用该函数,我想调出一个 QMessagebox 来显示错误消息;否则将消息打印到标准输出。

QApplication应该只有一个,如果我们要获取已有的,就必须使用instance(),常用的方法是使用下面的技巧:

app = QtWidgets.QApplication.instance()
if app is None:
    # if it does not exist then a QApplication is created
    app = QtWidgets.QApplication([])