我有一個Python程序來繪製使用自定義matplotlib小部件的簡單圖形。 我的代碼如下:更新一個PyQt小部件
import sys
from GUI import *
import random
import matplotlib.pyplot as plt
class GUIForm(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.pushButton,
QtCore.SIGNAL('clicked()'), self.PlotFunc)
def PlotFunc(self):
randValList = random.sample(range(0, 10), 10)
print(randValList)
self.ui.PlotWidget.canvas.ax.clear()
self.ui.PlotWidget.canvas.ax.plot(randValList)
def callFunc(self):
myapp.PlotFunc()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = GUIForm()
myapp.show()
sys.exit(app.exec_())
當我運行該程序,我可以看到GUI,但是當我點擊按鈕的情節不顯示線。空的情節是可見的。 然而如果我
def __init__(self, parent=None):
QtGui.QWidget.__init__(self,parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.pushButton,
QtCore.SIGNAL('clicked()'), self.PlotFunc)
self.ui.PlotWidget.canvas.ax.plot(randValList)
或
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = GUIForm()
myapp.show()
self.PlotFunc()
sys.exit(app.exec_())
程序繪製圖形。 所以我猜它與sys.exit(app.exec_())
有關,但不知道如何解決這個問題。 任何幫助表示讚賞。
謝謝。
請問您確認您的按鈕實例的名稱?在你的連接函數中你指定'self.ui.pushButton'。通常,Designer會默認使用'self.pushButton'創建它們。 – 2012-07-18 15:03:16
@ dex19dt謝謝。它是self.ui,因爲按鈕是Ui_Dialog的一部分。 – madu 2012-07-18 15:35:29
當您點擊按鈕時,您的打印語句是否顯示?你確認信號至少在發射嗎? – jdi 2012-07-19 03:59:12