我在Python中很新穎,試圖製作一個PyQt4應用程序,我在其中嵌入了PyQtGraph。我有這個PyQtGraph現場繪圖儀的作品充滿了想象:在PyQt4中使用PyQtGraph進行實時繪圖
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import random
app = QtGui.QApplication([])
p = pg.plot()
curve = p.plot()
data = [0]
def updater():
data.append(random.random())
curve.setData(data) #xdata is not necessary
timer = QtCore.QTimer()
timer.timeout.connect(updater)
timer.start(0)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
對於在一個更大的應用程序PyQt4的嵌入,我需要一個佈局包括pyqtgraph.PlotWidget()。對於這個問題,我在我的MainWindow中設置了一個centralWidget。我創建了一個按鈕,即應開始策劃,就像前面的代碼做,但是當我調用更新功能,通過該功能,繪圖儀只是什麼也沒有發生:
import sys
from PyQt4 import QtCore, QtGui
import pyqtgraph as pg
import random
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.central_widget = QtGui.QStackedWidget()
self.setCentralWidget(self.central_widget)
login_widget = LoginWidget(self)#to say where the button is
login_widget.button.clicked.connect(self.plotter)
self.central_widget.addWidget(login_widget)
def plotter(self):
self.data =[0]
timer = QtCore.QTimer()
timer.timeout.connect(self.updater)
timer.start(0)
def updater(self):
self.data.append(random.random())
plot.setData(self.data)
class LoginWidget(QtGui.QWidget):
def __init__(self, parent=None):
global plot
super(LoginWidget, self).__init__(parent)
layout = QtGui.QHBoxLayout()
self.button = QtGui.QPushButton('Start Plotting')
layout.addWidget(self.button)
plot = pg.PlotWidget()
layout.addWidget(plot)
self.setLayout(layout)
if __name__ == '__main__':
app = QtGui.QApplication([])
window = MainWindow()
window.show()
app.exec_()
沒有任何反應,因爲我有線程?
非常感謝@ImportanceOfBeingErnest,我真的想讓我的變量範圍理解起來並運行,但這需要我一些時間。幸運我你們是充滿激情的程序員:-)另外,我沒有在文檔中找到正確使用pg.PlotWidget().....再次感謝! – Ivy
如果這解決了您的問題,請考慮[接受它](http://meta.stackexchange.com/a/5235)。如果不能隨意改善你的問題。 – ImportanceOfBeingErnest