【发布时间】:2019-08-03 16:34:56
【问题描述】:
我有一个使用 PyQt5 开发的界面,带有 4 个按钮(2 个添加按钮和 2 个删除按钮)。我可以绘制第一个数据集,但是当我绘制第二个数据集时,第一个数据集被删除。这个想法是有可能通过单击按钮来添加或删除数据集。这里是初始代码:
class Mainwindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(Mainwindow, self).__init__(parent)
self.setupUi(self)
self.btn_add_1.clicked.connect(self.add_1)
self.btn_add_2.clicked.connect(self.add_2)
self.btn_remove_1.clicked.connect(self.remove_1)
self.btn_remove_2.clicked.connect(self.remove_2)
def add_1(self):
self.x = [1,2,3,4,5]
self.y = [1,2,3,4,5]
self.add_selected = 'add_1'
self.Graphique = Graphique(self.add_selected, self.x, self.y, self)
self.gridLayout.addWidget(self.Graphique, 0, 0, 1, 1)
def add_2(self):
self.x = [1,2,3,4,5]
self.y = [1,4,6,8,10]
self.add_selected = 'add_2'
self.Graphique = Graphique(self.add_selected, self.x, self.y, self)
self.gridLayout.addWidget(self.Graphique, 0, 0, 1, 1)
def remove_1(self):
pass
def remove_2(self):
pass
class Graphique(FigureCanvas):
def __init__(self, add_selected, x, y, parent =None):
self.x = x
self.y = y
self.add_selected = add_selected
self.fig = Figure()
FigureCanvas.__init__(self, self.fig)
self.setParent(parent)
self.Populate()
def Populate(self):
self.axes = self.figure.add_subplot(1,1,1)
lines = self.axes.plot(self.x, self.y,'o-')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
prog = Mainwindow()
prog.showMaximized()
sys.exit(app.exec_())
【问题讨论】:
-
目前每个数据集都有自己的图。相反,您可能希望创建一个图形并只更改数据,而不是完整的图形。
标签: python-3.x matplotlib pyqt5