2017-12-21 5 views
0

1つの子ボタンをドロップダウンから「隠す」ようにしたいのですが、すべてのボタンを隠すのでdropdown.dismiss()を使用することはできません。ここで私は何をしたいかを示して偽のコードは次のとおりです。Python KIVY:DropDownから1つの子ボタンを解除するにはどうすればいいですか?

.kv:

Button: 
    text: "Button 1" 
    on_release: " hide button 2 " 
Button: 
    text: "Button 2" 
    on_release: " no matter what " 

答えて

0

あなたがセットにidで、ボタンの不透明度にアクセスする必要があります。ボタンを非表示にするだけで、そのボタンをルートウィジェットから削除しないでください。

Button: 
    text: "Button 1" 
    on_release: bt2.opacity = 0 
Button: 
    id: bt2 
    text: "Button 2" 
    on_release: " no matter what " 

それとも、より良いあなたがボタンを非表示と表示したい場合:

on_release: bt2.opacity = int(not bt2.opacity) 
+0

ドロップダウンがGridLayoutののサブクラスであるので、あなただけのことでしょう兄弟ボタンにこれを追加することで、ボタンウィジェットを削除することができます 'on_release:root.remove_widget(bt2)' –

+0

ドロップダウンに3つ以上のボタンがある場合、またはOPがbt2の代わりにbt1を非表示にしたい場合は、ドロップダウンに穴が空いています。 @ JohnAndersonの答えは良いですが、bt2を削除するときは、必要に応じてもう一度値を追加するために値を保持する必要があります –

関連する問題