Я создал небольшой графический интерфейс с QT, который установил один матплотблиб figure
и axes
. В GUI есть элементы управления, чтобы изменить практически все, что связано с внешним видом axes
.matplotlib gui отвечает на изменения осей
В основном, это делает это каждый виджет излучающие сигналы обратно к основной раме, и это вызывает соответствующий Matplotlib setters
на axes
и figure
объектов.
Однако, возможно, для axes
(и, следовательно, изображение, отображаемое на FigureCanvas
) изменить без ввода из графического интерфейса (например, при автомасштабировании или добавления определенных графиков, которые автоматически регулируют оси). В этом случае виджет, управляющий, например, теперь границы оси x будут отображать неправильные значения.
Я хочу, чтобы все соответствующие виджеты обновлялись при обновлении осей .... как я мог это достичь?
Я думаю, что это проблема, которая была решена раньше - как включить двустороннюю связь между отдельными объектами?
Это на самом деле сложная задача - знаете ли вы, что вам нужно делать что-то таким образом, чтобы автоматически отрегулировать? возможно, вместо автоматического добавления подзаголовка, вы можете сами изменить или установить размеры осей и соответствующим образом обновить виджеты. – Ajean
Проблема заключается в том, что вы вызываете процедуру matplotlib для создания нового графика (например, 'axes.pie'), matplotlib будет корректировать сами оси, поэтому любые виджеты, управляющие осями, теперь не синхронизированы ... To всегда вручную контролировать, потребует перезаписи хорошей части matplotlib, чего я бы предпочел избежать. – jramm
Действительно, я думаю, это была просто мысль, если операции были достаточно простыми. Моя единственная другая идея - это, пожалуй, метод «обновления», который входит в вашу иерархию сюжетов и обращается к различным геттерам, чтобы получить правильные значения для обновления виджетов? Таким образом, вы можете позвонить ему после любого вызова сюжета. – Ajean