2017-05-26 1 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" 
      """)) 

ここでは実用的な例ではkivyのIDシステムを使用して優れたvideoチュートリアルです。あなたの頭をこの周りにラップするのに問題がある場合は、返信してください。

+0

素晴らしい!これは助けてくれてありがとう。私が遭遇しているもう一つの問題は、「MainToggle」を使用して複数の「SubToggle」ボタンの状態を変更しようとするときだけではなく、1つではありません。私はすべてのSubToggleボタンに同じIDを与えることでこれを達成しようとしましたが、MainToggleは一度に1つのSubToggleにしか影響しないようです。これについての考えは?再度、感謝します。 – blakebullwinkel

+0

うーん、あなたはここで何かトリッキーなことをしようとしているようですが、これを行う正しい方法を選んだのでしょうか?とにかく、SubToggleボタンがたくさんあり、同じ方法でそれらを変更したいのであれば、あなたのBoxLayoutにidを与え、PythonコードからSubTogglesを挿入してListPropertyに追加してください。次に、そのリストをループし、 'for sub_list:sub_list(change_state(x)')のようにすることができます。それがあなたを助けたら私の元の答えを受け入れることを検討してください。 –

+0

ちょうどそれを受け入れました:)うん、私がやっていることは、メニューの下にあるアイテムのリストを持つことです。私は個別に項目ボタンをクリックし、メニューボタンをクリックして、その下のすべての項目ボタンの状態を「下」の位置に変えたいと思っています。私はkivy言語を使ってすべてのトグルボタンを挿入していますが、Python側で何らかのループを作る必要があるようです。 – blakebullwinkel

関連する問題