我有一个Python程序,可以使用自定义matplotlib小部件绘制一个简单的图形。 我的代码如下:
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,但是当我点击按钮时,图表没有显示该行。空图是可见的。 但是,如果我dO
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_())
有关,但不知道如何解决这个问题。
任何帮助表示赞赏。
谢谢。
答案 0 :(得分:3)
如果你在PlotFunc的末尾添加这一行,它是否有效?
self.ui.PlotWidget.canvas.draw()