2017-03-03 155 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