从 pyqtgraph.Qt 导入 QtGui 为 *
Posted
技术标签:
【中文标题】从 pyqtgraph.Qt 导入 QtGui 为 *【英文标题】:Importing QtGui from pyqtgraph.Qt as * 【发布时间】:2017-02-28 04:04:57 【问题描述】:我正在尝试使用 pyqtgraph
在我的 PySide GUI 中插入图表。
目标:在遵守pyqtgraph
s 导入规则的同时继续为 PySide 使用通配符导入。
显然,PySide.QtCore
和 PySide.QtGui
需要通过 pyqtgraph
导入才能使包正常工作。在示例中,它的写法是这样的:
from pyqtgraph.Qt import QtCore, QtGui
通常我将 PySide 组件导入为:
from PySide.QtCore import *
from PySide.QtGui import *
注意通配符导入语句。问题是以下在导入时抛出异常(ImportError: No module named QtGui
):
from pyqtgraph.Qt.QtCore import *
from pyqtgraph.Qt.QtGui import *
有没有办法解决这个问题?我宁愿不必返回我的代码并将所有 self.clock_timer = QTimer()
替换为 self.clock_timer = QtCore.Timer()
语句。
捷径:如果我可以避免通过pyqtgraph
导入QtCore
和QtGui
,那就更好了。当我尝试使用 do it(使用第一个导入样式)时,某些功能(例如 AutoPan)不起作用。
【问题讨论】:
【参考方案1】:将其放在应用程序的开头,以确保 pyqtgraph 预加载 pyside 模块(并执行它需要做的任何猴子补丁):
import os
os.environ['PYQTGRAPH_QT_LIB'] = 'PySide'
from pyqtgraph import Qt
现在您可以安全地使用您首选的导入,因为sys.modules
将已经包含任何已加载的(已修补的)模块 pyqtgraph:
from PySide.QtCore import *
【讨论】:
这看起来很有希望!我将能够在几天内试用它,然后一定会回来给你检查它是否有效。以上是关于从 pyqtgraph.Qt 导入 QtGui 为 *的主要内容,如果未能解决你的问题,请参考以下文章