gpt4 book ai didi

python - 如何清除 PyQt 中的绘图?

转载 作者:行者123 更新时间:2023-11-30 21:50:21 24 4
gpt4 key购买 nike

我使用 QT Designer 在 PyQt 中创建了一个小应用程序。我有一些按钮,“绘图”按钮在 4 个不同的小部件上创建 4 个绘图。 “清除”按钮必须清除这 4 个绘图。我尝试编写一些代码,但它无法运行。我怎样才能创建这个清晰的按钮?谢谢。

这是我的应用程序的主要部分:

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_())

最佳答案

看来你必须重新绘制 Canvas 才能清除绘图:

    def Clear(self):
self.ui.widget.canvas.ax.clear()
self.ui.widget.canvas.draw()
self.ui.widget_2.canvas.ax.clear()
self.ui.widget_2.canvas.draw()
self.ui.widget_3.canvas.ax.clear()
self.ui.widget_3.canvas.draw()
self.ui.widget_4.canvas.ax.clear()
self.ui.widget_4.canvas.draw()

关于python - 如何清除 PyQt 中的绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com