我是 Python 和 PyQt 的新手。保持 4 个 QtTreeWidgets 同步以使项目以及所有项目的所有属性相同的最佳方法是什么?这些小部件在会话期间的不同时间出现在不同的对话框中。出于多种原因,我需要尽可能多地保持现有代码、信号和布局的完整性。模型/视图部门显然是第一个去的地方,但我不想触及任何用于访问或更新树的方法。我计划在几个月内重构整个东西,但在那之前我需要一些快速的东西来支撑我。
由于每个 QTreeWidget 都是一个便利类,因此每个都有自己的数据。UI 在 Qt Designer 中维护,我不想保持这种状态。
当每个对话框被初始化时,树就会出现。该应用程序有一个单例类,所有对话框都可以使用它来引用其变量/属性。
在每个父对话框的初始化中,我不能检查单例中是否存在“locationTree”属性。如果没有,我需要用它的初始状态填充它,并让对话框中的树使用它或它的副本。每当对话树的状态以我可以捕获的方式更改时,我想更新单例“locationTree”以反映更改。虽然QTreeWidgetItem上有一个clone方法,但是我没有看到整个QTreeWidget对应的方法。
如何通过对现有代码库和 GUI 布局的最少更改来实现这一点?
约翰