我使用QT Designer在PyQt中創建了一個小應用程序。我有一些按鈕,「Plot」按鈕在4個不同的Widget上創建4個圖。 「清除」按鈕必須清除這4個地塊。我嘗試寫一些代碼,但它不運行。我怎樣才能創建這個清除按鈕?謝謝。如何清除PyQt中的圖表?
這是主要的我的應用程序:
import sys
from Import_fsa import import_fsa
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QFileDialog
from Vannucci_Gemignani import Ui_MainWindow
class GUI_fsa(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
self.ui.Button_Browse.clicked.connect(self.Browse)
self.ui.Button_Plot.clicked.connect(self.Plot)
self.ui.Button_Clear.clicked.connect(self.Clear)
def Browse(self):
fname=QFileDialog.getOpenFileName()
if fname=='': #se non viene selezionato nessun file, fname è
return #nullo, generando quindi un errore nell'import fsa
self.ui.lineEdit.setText(fname)
def Plot(self):
if self.ui.lineEdit.text()=='':
QtGui.QMessageBox.information(None,'Warning','Select fsa File',QtGui.QMessageBox.Ok)
return
data_set=import_fsa(self.ui.lineEdit.text())
self.ui.widget.canvas.ax.clear()
self.ui.widget_2.canvas.ax.clear()
self.ui.widget_3.canvas.ax.clear()
self.ui.widget_4.canvas.ax.clear()
self.ui.widget.canvas.ax.plot(data_set[0])
self.ui.widget_2.canvas.ax.plot(data_set[1])
self.ui.widget_3.canvas.ax.plot(data_set[2])
self.ui.widget_4.canvas.ax.plot(data_set[3])
self.ui.widget.canvas.draw()
self.ui.widget_2.canvas.draw()
self.ui.widget_3.canvas.draw()
self.ui.widget_4.canvas.draw()
def Clear(self):
self.ui.widget.canvas.ax.clear()
self.ui.widget_2.canvas.ax.clear()
self.ui.widget_3.canvas.ax.clear()
self.ui.widget_4.canvas.ax.clear()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
MainWindow = GUI_fsa()
MainWindow.show()
sys.exit(app.exec_())
PyQt的代碼看起來好像沒什麼問題。按鈕連接正確:您可以通過在Clear方法的頂部添加'print(「clear」)'來檢查。所以matplotlib的東西一定有問題(我不太熟悉)。 – ekhumoro
我把打印('清除'),當我點擊按鈕時,我可以看到我的Python支架上的'打印'。因此,按鈕運行良好,但數字不明確。 – Gianluca
我對matplotlib瞭解不多,但是如果你搜索到了,你應該能夠找到答案。試試[這個問題](http://stackoverflow.com/q/8213522/984421)和[this one](http://stackoverflow.com/q/741877/984421)。 – ekhumoro