
Атрибут экземпляра хранит кривую Безье на рисунке, но поскольку обновленное значение не передается, график справа отображает начальное значение, а график слева отображается правильно.
Я пытался использовать механизм сигналов для передачи значений, но это не удалось.
Как показано в коде сохраненные данные указывают на то, что концентратор1 и концентратор3 идентичны, а концентратор2 был изменен с помощью события мыши. Я хочу, чтобы матрица, передаваемая в Hub3, была такой же, как Hub2, а не с исходным значением.
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi('Bezier_fit.ui', self)
self.shroud_bezier_line, self.hub_bezier_line = bezier_point(self.inter_point, self.ctr_point)
# np.savetxt("hub1",self.hub_bezier_line)
self.bezier_line.clicked.connect(lambda: self.set_ctr_point())
def set_ctr_point(self):
def on_motion(event):
if dragging and event.inaxes == self.plotCanvas_bezier.ax:
self.ctr_point = renew_data(self.ctr_point, event.xdata, event.ydata, current_index)
self.shroud_bezier_line,self.hub_bezier_line=bezier_point(self.inter_point,
self.ctr_point)
# np.savetxt("hub2",self.hub_bezier_line)
cid_motion = self.plotCanvas_bezier.ax.figure.canvas.mpl_connect('motion_notify_event', on_motion)
class SecondWindow(MainWindow):
def __init__(self):
super().__init__()
uic.loadUi('streamline.ui', self)
# np.savetxt("hub3",self.hub_bezier_line)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -functions
Мобильная версия