Python pyqtgraph如果为';它在gui中

Python pyqtgraph如果为';它在gui中,python,pyqt4,qt-designer,pyqtgraph,Python,Pyqt4,Qt Designer,Pyqtgraph,不幸的是,pyqtgraph和由QtDesigner的.ui文件制作的最小GUI有问题: 如果我运行此代码,其中包含GUI代码和一个pyqtgraph代码示例(从第行开始:#-*-编码:utf-8-*-): GUI和绘图窗口都会启动并运行,但绘图不是交互式的,因为我会独立运行pyqtgraph示例代码 我想这是因为评论了这段代码: ## Start Qt event loop unless running in interactive mode or using pyside. # if __n

不幸的是,pyqtgraph和由QtDesigner的.ui文件制作的最小GUI有问题:

如果我运行此代码,其中包含GUI代码和一个pyqtgraph代码示例(从第行开始:
#-*-编码:utf-8-*-
):

GUI和绘图窗口都会启动并运行,但绘图不是交互式的,因为我会独立运行pyqtgraph示例代码

我想这是因为评论了这段代码:

## Start Qt event loop unless running in interactive mode or using pyside.
# if __name__ == '__main__':
    # import sys
    # if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        # QtGui.QApplication.instance().exec_()
但是如果我取消注释这几行,绘图窗口将以交互模式启动,但我的GUI窗口在关闭绘图窗口之前不会显示

如何使它们(GUI和绘图窗口)在交互模式下与绘图窗口同时显示


有什么建议吗?

为了让PyQt小部件正常工作,他们需要在创建小部件之前创建一个
QApplication
,在这种情况下,您没有任何before
pg.GraphicsWindow()
。解决办法是:

...
import sys # <---

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np

app = QtGui.QApplication(sys.argv) # <---
win = pg.GraphicsWindow()
...


if __name__ == "__main__":
    if not QtGui.QApplication.instance(): # <---
        app = QtGui.QApplication(sys.argv) # <---
    Dialog = QtGui.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): # <---
        sys.exit(QtGui.QApplication.instance().exec_()) # <---
。。。

导入sys#@eyllabesc:非常感谢您的帮助!它工作正常。
...
import sys # <---

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np

app = QtGui.QApplication(sys.argv) # <---
win = pg.GraphicsWindow()
...


if __name__ == "__main__":
    if not QtGui.QApplication.instance(): # <---
        app = QtGui.QApplication(sys.argv) # <---
    Dialog = QtGui.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): # <---
        sys.exit(QtGui.QApplication.instance().exec_()) # <---