如何在 PySide2 中检查 gui 与命令行模式



在我的 PySide2 代码中,我需要检查程序是在 gui 模式还是命令行下运行。在 PySide 中,我曾经这样做过:

if QApplication.type() == QApplication.Type.GuiClient:
    # do stuff

但是,根据 http://doc.qt.io/qt-5/sourcebreaks.html:

删除了 QCoreApplication::Type 和 QApplication::type((。这些Qt 3 旧版应用程序类型与应用程序类型不匹配 在 Qt 5 中可用。改用qobject_cast来动态查找 确切的应用程序类型。

我的 PySide 程序在主机应用程序中运行,所以我不是自己创建 QCoreApplication 实例,我只需要检查主机应用程序是否处于批处理模式(非 GUI(以避免一些问题。

我现在的问题是如何使用 qobject_cast 在 PySide2 中实现相同的目标?文档中C++示例并没有告诉我如何使用 Python 来解决这个问题。

有人可以举个例子或建议其他方法来实现同样的事情吗?

最后我需要做的就是:

isinstance(QtWidgets.QApplication.instance(), QtWidgets.QApplication)

在 GUI 模式下返回 True,在命令行/批处理模式下返回 False。感谢 ekhumoro 为我指明正确的方向!

相关内容

  • 没有找到相关文章