Win 7, Python 3.8
Добрый день. Рисую на объекте Figure различные фигуры, в том числе прямоугольники. Иногда некоторые из них требуется удалить, не удаляя остальные. Подскажите, как можно выполнить данную операцию, не методом тыка? Для рисования использую следующий код:
Такой вот код не сработал. Выдаёт ошибку: remove() takes 1 positional argument but 2 were given
Добрый день. Рисую на объекте Figure различные фигуры, в том числе прямоугольники. Иногда некоторые из них требуется удалить, не удаляя остальные. Подскажите, как можно выполнить данную операцию, не методом тыка? Для рисования использую следующий код:
Python:
class test_win(QtWidgets.QMainWindow, test_ev.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.fig = Figure()
self.x_area0 = []
self.y_area0 = []
self.ax = self.fig.add_subplot()
self.can = FigureCanvasQTAgg(self.fig)
self.test_box.addWidget(self.can)
self.tools = NavigationToolbar2QT(self.can, self)
self.test_box.addWidget(self.tools)
self.fig.canvas.mpl_connect('button_press_event', self.pr_coord_mouse)
self.fig.canvas.mpl_connect('button_release_event', self.create_graph)
def cleaner_xy_area(self):
if len(self.x_area0) > 0:
self.x_area0 = []
self.y_area0 = []
def pr_coord_mouse(self, event):
self.cleaner_xy_area()
self.x_area0.append(event.xdata)
self.y_area0.append(event.ydata)
def create_graph(self, event):
if len(self.x_area0) != 0:
if self.rb_area.isChecked() == True:
self.x_area0.append(event.xdata)
self.y_area0.append(event.ydata)
area = Rectangle((self.x_area0[0], self.y_area0[0]), 0, 0, fill=None)
area.set_width(self.x_area0[1] - self.x_area0[0])
area.set_height(self.y_area0[1] - self.y_area0[0])
self.ax.add_patch(area)
self.txt_time_top.setText("{:.2f}".format(self.y_area0[0] * dt))
self.txt_time_bot.setText("{:.2f}".format(self.y_area0[1] * dt))
self.txt_trace_left.setText("{:.0f}".format(self.x_area0[0]))
self.txt_trace_right.setText("{:.0f}".format(self.x_area0[1]))
self.fig.canvas.draw()
Python:
def lastik(self):
x = self.ax.get_children()
for i in x:
if len(x) != 10:
self.ax.remove(0)
self.fig.canvas.draw()
Последнее редактирование: