我有一个具有 GUI 界面和命令行界面的软件。它应该做的是检测它是否在 qtconsole 中运行。如果是,它不会创建新的 QApplication 并以非阻塞方式显示 GUI。脚本存在后,会有一个 cmd 对象,用户可以在其中与较低级别的事物进行交互。
from PyQt4.QtCore import QCoreApplication
from PyQt4.Qt import QApplication
import sys
QApp = QCoreApplication.instance()
new_qapp_bit = False
if QApp == None:
print 'running without the qt console'
new_qapp_bit = True
QApp = QApplication(sys.argv)
else:
print 'found the qt console'
cmd = MyCMDInterface(use_gui=True)
if new_qapp_bit
sys.exit(QApp.exec_())
在 Windows 上这工作得很好,QCoreApplication.instance() 返回一个有效的 QApplication,一切都按计划进行,但在 Linux 和 Mac 上它返回 None。我一直在研究这个问题,但我没有看到任何答案。