繁体   English   中英

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

[英]How to check for gui vs command line mode in PySide2?

在我的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为我指出正确的方向!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM