答案由Joran Beasley提供。他提供的鏈接滿足了我的需求。問題底部的示例。wxpython從ID訪問對象
在wxPython應用程序中創建的每個對象都會創建一個id
。它可以作爲參數給出,或者使用id=wx.NewId()
自動創建。
據我所知,與一個對象的id
然後你可以從其他地方引用該對象,但我找不到任何簡單的解釋如何做到這一點。
任何人都可以在正確的方向指向我,也許可以對此有所瞭解嗎?
(注:我不是在尋找通過ID綁定的事件,那就是我發現所有的地方唯一的教程)
答: 在類wx.Window
,發現該功能FindWindowById()
其中大部分小部件是的子類。
通過調用一個對象的父這個功能有問題的對象(沒有嘗試過盛大的父母等),它返回一個指針,使得(複印件):(在交互式解釋)
import wx
app = wx.App()
frame = wx.Frame(None)
but = wx.Button(frame, -1, label='TestButton')
frame2 = wx.Frame(None)
butId = but.GetID()
test = wx.Window.FindWindowById(butId) # Fails with TypeError
# TypeError: unbound method FindWindowById() must be called with Window instance as
# first argument (got int instance instead)
test = Frame2.FindWindowById(butId) # returned either a None object or nothing at all.
test = Frame.FindWindowById(butId) # returned a pionter (copy?) of the object in such a
# manner that the following worked:
label = test.GetLabel()
print label # displayed u'TestButton'
因此,通過了解對象的id
,可以獲取指向該對象的指針,以便可以進一步處理它。
我對Joran ;-)
林不知道......我一直在WX extensivly很長一段時間,從來沒有通過ID得到......通常你都封裝成類,哈哈有權訪問他們需要的東西......你可以在構造函數中編寫一些包裝/工廠函數來將ID存儲在全局字典中供以後查找... –