Я новичок в Python и PyQt.Каков наилучший способ синхронизации 4 QtTreeWidgets, чтобы элементы были такими же, как и все атрибуты всех элементов?Эти виджеты появляются в разных диалоговых окнах в разное время в течение сеанса.По ряду причин мне необходимо сохранить как можно большую часть существующего кода, сигналов и компоновки.Разделение Модель / Представление было бы очевидным первым делом, но я не хочу касаться каких-либо методов, которые используются для доступа или обновления дерева.Я планирую провести рефакторинг всего этого через несколько месяцев, но мне нужно что-то быстро перенести меня до тех пор.
Поскольку каждый QTreeWidget является вспомогательным классом, у каждого есть свои данные.Пользовательский интерфейс поддерживается в Qt Designer, и я не хочу, чтобы он оставался таким.
Когда каждый диалог инициализируется, появляется дерево.Приложение имеет одноэлементный класс, который все диалоги могут использовать для ссылки на его переменные / атрибуты.
При инициализации каждого родительского диалога я не мог проверить, существует ли атрибут «locationTree» в синглтоне.Если нет, то мне нужно заполнить его исходным состоянием и использовать дерево в диалоговом окне или его копию.Каждый раз, когда состояние диалогового дерева изменяется так, что я могу его перехватить, я бы хотел обновить синглтон locationTree, чтобы отразить изменение.Хотя в QTreeWidgetItem есть метод клонирования, я не видел соответствующего метода для всего QTreeWidget.
Как я могу добиться этого с наименьшим количеством изменений в существующей базе кода и компоновке GUI?
Джон