2017-03-03 157 views
1

我使用QT Designer在PyQt中创建了一个小GUI。我有一个按钮,“清除”按钮必须清除此图(我的清除按钮调用pushButton)。我尝试写一些代码,但它不运行。我怎样才能创建这个清除按钮?谢谢。如何在PyQt中使用pushButton清除绘图?

import sys 
from PyQt4 import QtCore, QtGui, uic 


form_class = uic.loadUiType("gugus.ui")[0] # Load the UI 


class MyWindowClass(QtGui.QMainWindow, form_class): 

def __init__(self, parent=None): 

    QtGui.QMainWindow.__init__(self, parent) 
    self.setupUi(self) 

    self.pushButton.clicked.connect(self.btn_pgb) 
    self.matplotlibwidget.axes.plot([0, 1, 1.5, 3], [50, 1, 2, 0]) 

def btn_pgb(self): 

    # Her I should clear my plot, but don`t know how `enter code here` 
    self.progressBar.setValue(69) 


app = QtGui.QApplication(sys.argv) 
myWindow = MyWindowClass() 
myWindow.show() 
app.exec_() 

回答

1

要清除坐标轴,请使用axes.clear()。要清除完整的数字,请使用axes.figure.clear()

在你的情况,这将是

self.matplotlibwidget.axes.clear() 

self.matplotlibwidget.axes.figure.clear() 

之后,你将需要重新绘制在画布上。

self.matplotlibwidget.axes.figure.canvas.draw_idle() 
+0

感谢提示,但它不起作用 – srky

+0

对不起,我无法测试它,因为我没有[mcve]可用。我忘了提及,为了这是可见的,你需要重画画布。查看更新的答案。 – ImportanceOfBeingErnest

+0

它的工作原理是 – srky