【问题标题】:How to clear a plot with a pushButton in PyQt?如何在 PyQt 中使用按钮清除绘图?
【发布时间】:2017-07-23 13:28:07
【问题描述】:

我使用 QT Designer 在 PyQt 中创建了一个小 GUI。我有一个按钮。“清除”按钮必须清除此图(我的清除按钮调用 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_()

【问题讨论】:

    标签: python matplotlib pyqt4 matplotlib-widget


    【解决方案1】:

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

    在你的情况下,这将是

    self.matplotlibwidget.axes.clear()
    

    self.matplotlibwidget.axes.figure.clear()
    

    之后,您需要重新绘制画布。

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

    【讨论】:

    • 抱歉,我无法测试它,因为我没有可用的minimal reproducible example。我忘了提到要让它可见,你需要重新绘制画布。查看更新的答案。
    • 如果这解决了问题,请考虑accepting the answer,这样它就不会永远悬而未决。
    猜你喜欢
    • 2014-05-03
    • 1970-01-01
    • 2016-01-21
    • 2018-09-21
    • 2011-02-12
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多