我有一个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