我是Python和PyQt的新手。什麼是保持4個QtTreeWidgets同步的最好方法,以便項目與所有項目的所有屬性相同?這些小部件在會話期間的不同時間出現在不同的對話框中。出於多種原因,我需要儘可能保持原有的代碼,信號和佈局儘可能完整。模型/視圖部門將是顯而易見的首要位置,但我不想觸摸任何用於訪問或更新樹的方法。我打算在幾個月內重構整個事情,但我需要一些東西來快速帶我到那時。同步的Qt TreeWidgets
由於每個QTreeWidget是一個便利的類,每個都有自己的數據。用戶界面在Qt Designer中維護,我不想這樣保留。
當每個對話框初始化時,樹會出現。應用程序有一個單例類,所有對話框都可以用來引用其變量/屬性。
在初始化每個父對話框時,我無法檢查singleton中是否存在'locationTree'屬性。如果沒有,我需要用它的初始狀態填充它,並讓對話框中的樹使用它或它的一個副本。任何時候,對話樹的狀態都會以我可以陷入的方式改變,我想更新singleton的'locationTree'來鏡像更改。雖然在QTreeWidgetItem上有一個克隆方法,但我沒有看到整個QTreeWidget的相應方法。
如何用現有代碼庫和GUI佈局進行最少量的更改來完成此操作?
約翰
我現在正在使用PyQt 4.4.4。樹中可能有24到24,000個節點,這是很多需要複製的。 – iwonder
只需要注意 - 通常類應該繼承QObject,如果你想要的只是信號/插槽功能。 – Luke
對不起 - 我真的打算輸入''QObject'',而不是'QWidget'' - 非常感謝您指出錯誤。我將編輯上面的文字。 –