2017-05-26 102 views

回答

2

你可以參考使用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系統中的實際例子。如果您無法繞過這個問題,請回復。

+0

太棒了!這工作,感謝您的幫助。我遇到的另一個問題是當我嘗試使用「MainToggle」來改變多個「SubToggle」按鈕的狀態,而不是一個。我試圖通過給予所有SubToggle按鈕相同的ID來實現這一點,但MainToggle只能一次影響一個SubToggle。對此有何想法?再次感謝。 – blakebullwinkel

+0

嗯,你試圖在這裏做一些棘手的事情,你確定你選擇了正確的方法來做到這一點?無論如何,如果有許多SubToggle按鈕,並且您想以相同方式更改它們,爲什麼不給BoxLayout一個id,並且在您從Python代碼中插入SubToggles時,將它們添加到ListProperty中。然後,你可以遍歷該列表並執行sub_list中的sub:change_state(x)'或類似的東西。考慮接受我的原始答案,如果它幫助你。 –

+0

剛接受:)是啊,我想要做的是有一個菜單下的項目列表。我希望能夠單獨點擊項目按鈕,並且還可以單擊菜單按鈕,以便將它下面的所有項目按鈕的狀態更改爲「向下」位置。我一直使用kivy語言插入所有的切換按鈕,但似乎我需要在Python端創建一個循環。 – blakebullwinkel