2017-12-21 9 views
0

하나의 하위 버튼을 드롭 다운에서 숨기고 싶습니다. 그러나 모든 버튼을 숨기기 때문에 dropdown.dismiss()를 사용할 수 없습니다. 여기에 내가 원하는 걸 보여주고 가짜 코드는 다음과 같습니다Python KIVY : DropDown에서 자식 단추 하나를 닫는 방법?

.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를 삭제할 때 필요할 때 다시 추가하려면 bt2 값을 유지해야합니다. –