你可以參考使用kivy ID系統的其他部件。注意下面的代碼:
from kivy.base import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string("""
<[email protected]>:
<[email protected]>:
on_state: self.background_color = 0,0,0,1 # the sub-toggle button changes color
BoxLayout:
MainToggle:
id: my_toggle1 # an id allows us to refer to this widget
text: "Main Toggle"
# change the other toggle's state using its id
on_state: my_toggle2.state = "down" if my_toggle2.state == "normal" else "normal"
SubToggle:
id: my_toggle2
text: "Sub Toggle"
"""))
這裏是一個極好的video教程,使用kivy ID系統中的實際例子。如果您無法繞過這個問題,請回復。
太棒了!這工作,感謝您的幫助。我遇到的另一個問題是當我嘗試使用「MainToggle」來改變多個「SubToggle」按鈕的狀態,而不是一個。我試圖通過給予所有SubToggle按鈕相同的ID來實現這一點,但MainToggle只能一次影響一個SubToggle。對此有何想法?再次感謝。 – blakebullwinkel
嗯,你試圖在這裏做一些棘手的事情,你確定你選擇了正確的方法來做到這一點?無論如何,如果有許多SubToggle按鈕,並且您想以相同方式更改它們,爲什麼不給BoxLayout一個id,並且在您從Python代碼中插入SubToggles時,將它們添加到ListProperty中。然後,你可以遍歷該列表並執行sub_list中的sub:change_state(x)'或類似的東西。考慮接受我的原始答案,如果它幫助你。 –
剛接受:)是啊,我想要做的是有一個菜單下的項目列表。我希望能夠單獨點擊項目按鈕,並且還可以單擊菜單按鈕,以便將它下面的所有項目按鈕的狀態更改爲「向下」位置。我一直使用kivy語言插入所有的切換按鈕,但似乎我需要在Python端創建一個循環。 – blakebullwinkel