2010-02-19 24 views
0

問候所有,wxPython的 - 兩個相同的部件之間進行區分

我有一個包含兩個面板,其中的每一個含有一個wxListCtrl wxPython的項目(與wxFormBuilder創建)。加載列表控件時,每個列都可以顯示不同的列。由於列表包含在面板中,它們都具有相同的ID,並且相同的例程適用於列表的填充例程。

我需要在運行時確定正在填充哪個列表,以便我可以檢索相應的配置數據。如果我使用list.GetID(),我保證這些值在每次運行時都是相同的?也就是說,我可以安全地保存基於GetID()值的配置詳細信息,所以下次它運行時,它做的權利/同樣的事情?

有沒有更好,更聰明,更簡單的方法逃避我?

謝謝!

回答

0

我不認爲有任何保證GetID()將一致運行運行。

你可以在製作後爲每個列表分配自己的ID嗎?喜歡的東西:

listctrl.myID = 5 

另一個想法是,如果孩子的ID不是唯一的,也許你可以使用的getParent(),並建立雙方父母和列表ID的元組,然後這個元組是唯一的。

即使分配的ID不唯一,Python ID也會如此。

+0

嗯,我可以迭代屬於一個框架的所有面板,併爲它們分配一個計數器值。或者會得罪神嗎? – 2010-02-19 17:10:53

+0

老實說,我不太清楚這個問題,不能完全說出你是如何做到這一點的。特別是,當你想知道身份證,你從哪裏開始? – tom10 2010-02-19 17:27:37

+0

也許如果你發佈了一個小例子,我可以找出問題所在。例如,爲什麼不爲每個列表捕獲EVT_LIST_INSERT_ITEM? – tom10 2010-02-19 17:55:24

0

你可以給每個不同的name屬性值,然後在需要引用其中一個時使用FindWindowByName

相關問題