我試圖構建包含多個按鈕的此應用程序。我可以將每個按鈕事件綁定到回調,但我無法更改除觸發事件的按鈕之外的任何其他按鈕的狀態(即標籤)。有誰知道如何做到這一點?基於Kivy中的一個按鈕事件的多個小部件更改
0
A
回答
1
所有你需要的是對其他按鈕的引用,那麼你可以做other_button.text = 'whatever'
。
要做到這一點的方法取決於你如何構建程序。例如,如果您使用kv語言在程序中構建,則可以使用id: some_id
給出您的按鈕ID,並在on_press: some_id.do_something()
之類的回調中引用它們。
在純python中,創建它們時可以在父類中繼續引用按鈕(例如self.button = Button()
),以便回調可以引用self.button
來更改它。顯然這是一個微不足道的例子,但總體思路可以讓你完成任何你想要的事情。
1
可能不是官方的方式,但請試試以下代碼。它將改變按鈕的文本屬性...
Ezs.kv文件:
#:kivy 1.8.0
<Ezs>:
BoxLayout:
orientation: 'vertical'
padding: 0
spacing: 6
#choose
Button:
id: btn_1
text: 'text before'
on_press: btn_2.text = 'Whatever'
on_release: self.text = 'Who-Hoo'
#choose
Button:
id: btn_2
text: 'Press this'
on_release: self.text = 'HEEYY'
on_press: btn_1.text = 'text after'
.py文件:
class Ezs(BoxLayout):
class EzsApp(App):
def build(self):
return Ezs
if __name__ == '__main__':
EzsApp().run()
相關問題
- 1. 對於多個按鈕的Onclick事件
- 2. 我如何禁用基於Kivy中另一個小部件的值的小部件
- 3. 在事件中添加小部件。 Kivy
- 4. 一個用於多個按鈕的.click事件處理程序
- 5. kivy:使用on_press事件更改根窗口小部件中嵌套按鈕的顏色
- 6. 多個按鈕,一個事件來改變點擊按鈕的顏色
- 7. 發起Kivy多個部件
- 8. 如何更改小部件上一個多對多的ModelForm
- 9. 如何讓一個按鈕用於多個事件Visual Basic
- 10. 如何創建一個有很多按鈕的小部件?
- 11. 哪個是單選按鈕列表的事件,類似於單選按鈕的檢查更改事件
- 12. Kivy - python - recycleview行中的多個小部件
- 13. 更改另一個部分中的按鈕圖像也更改?
- 14. 如何將gwt複合小部件更改爲一個更改事件
- 15. Android更改部件按鈕
- 16. 更改類中的kivy小部件屬性
- 17. 更改窗口小部件中的圖像 - Kivy - Python
- 18. 更改切換按鈕/單選按鈕狀態外部事件
- 19. 更改多個單選按鈕選擇基於一個收音機簽入angularjs
- 20. 如何通知小部件有關Qt中另一個小部件的更改?
- 21. 選擇第一個單選按鈕來觸發更改事件
- 22. 更改窗口小部件中按鈕的背景:Android
- 23. 基於一個元素的變化事件觸發多個事件 - jQuery
- 24. 只顯示Django RadioSelect中的一個單選按鈕小部件
- 25. iOS - 一個按鈕上的多個事件
- 26. 點擊一個按鈕時的事件
- 27. 爲什麼kivy一次更改所有小部件
- 28. Kivy:我想通過點擊另一個窗口小部件(例如按鈕)更改窗口小部件的屬性(例如文本)
- 29. 在其OnPaint事件中更改按鈕
- 30. Python Kivy:如何在一個循環中添加多個小部件