python - PyQtGraph:检查(sys.flags.interactive != 1)是否具有attr(QtCore,'PYQT_VERSION')
问题描述
我正在阅读一些使用 PyQtGraph 的简单示例,我注意到很多人写道:
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
而不是仅以下行:
QtGui.QApplication.instance().exec_()
我什么时候应该在我的应用程序中使用这两个条件?
解决方案
首先,您必须了解QtGui.QApplication.instance().exec_()
您所做的是执行 Qt 事件循环。
让我们分析每个条件意味着什么:
sys.flags.interactive
:当您通过REPL以交互模式执行代码时,例如当您使用 Python 控制台时(请阅读交互模式了解更多信息),此标志将被激活。如果它与 1 不同,则意味着不需要使用 Qt 事件循环,因为 REPL 已经有一个事件循环。hasattr(QtCore, 'PYQT_VERSION')
: pyqtgraph 使用 PyQt 作为后端,所以如果你没有安装 PyQt,Qt 事件循环是不可能的,所以这个条件验证了 PyQt 的安装,如果你的应用程序没有安装,它将无法工作。
所以第一个条件建议你使用它,这样你的代码在你使用或不使用交互模式的情况下都不会出现问题。
相反,请使用第二个条件,以确保您已将 PyQt 作为后端安装,但请记住它目前还支持 PySide 和 PySide2,因此在这些情况下,您不应使用该条件。
推荐阅读
- ansible - 尽管建立了 SSH 连接,但 Ansible ping 没有响应或错误
- javascript - 检查组 ActiveDirectory.js node.js 中的用户是否
- visual-studio - 如何停止 Visual Studio 为 .NET 核心项目制作这么多文件
- javascript - ASP.Net WebForms 不会从代码隐藏文件中触发 UI 事件
- pug - 从 NPM 包继承 pug 文件
- javascript - 为什么我会收到这个错误,我不知道为什么?sketch.js:18 未捕获的类型错误:无法在 sketch.js:18 处读取 null 的属性“addEventListener”
- c# - 如何为首次应用程序使用设置标签默认值
- wordpress-gutenberg - 如何修复 wordpress 古腾堡编辑器中高级面板的位置
- javascript - Flatlist 不支持同时设置 onViewableItemsChanged 和 viewabilityConfigCallbackPairs
- node.js - 使用 Node.js 下载应用程序/PDF