很抱歉,如果圖像是巨大的訪問兒童IDS的孩子KIvy
確定。所以here's my complete code。它是中等大小的,所以它僅供參考 - 不需要理解代碼。因此,如果我想訪問Python中Layout中的Button(),Label()或TextInput()對象,我只需要執行self.ids.object_name.property_of_object即可。
但是,假設我有一個ScreenManager(),該ScreenManager()中的Screen()以及該屏幕對象內的自定義佈局MyCustomLayout()。就我所能得到的結果而言 - 我無法從Screen()的Python代碼中獲取MyCustomLayout()中的id。
I.e.假設在MyCustomLayout()中有一個按鈕my_button的id。我想改變文字。
如果我是類MyCustomLayout()下,這將工作:
self.ids.my_button.text = 'My new text!'
但是,假設我在自選畫面(),它保存MyCustomLayout()。我一直沒能得到:
self.ids.my_button.text doesn't work
self.ids.my_custom_layout.my_button.text doesn't work
事實上,self.ids返回{}。由於某種原因,它甚至沒有填充ObservableDict。
但是,無論如何。我想我說的是這個。如果我要訪問自定義窗口小部件的孩子:
- 在一個屏幕對象
- 在Python
- 在自選畫面()類
我會怎麼做呢?
謝謝!
額外的信用:告訴我你是如何學到這些的!
啊,我很高興你這樣回答。給我一個機會來更具體地說明我在詢問什麼。讓我們拿你的代碼,但修改BoxLayout的一部分,就像這樣 - Gist:https://gist.github.com/Crowbrammer/d78ea1a3491db095021bbabc4744b99b –
因爲,在Screens中實例化一個自定義類會產生一個'mybutton'的KeyError。如果我拿出第40-41行,我得到一個AttributeError - 'MyCustomLayout1'沒有屬性'manager'(它沒有)。所以,問題是,我們如何使這個新代碼 - 使用自定義類 - 像您的原始代碼一樣工作? –
@crowbar編程啊:)我會看看 – EL3PHANTEN