簡體   English   中英

如何在單擊按鈕時更新 kivy 中的 Label

[英]How to Update Label in kivy On Clicking a Button

我真的厭倦了與該主題相關的搜索。 而且永遠不會得到很好的答案...

我很抱歉這么說,但是你應該質疑你的搜索技巧。 下次請提供您已經嘗試過的最小示例,因為這樣我可以幫助您正確理解這些機制。 當然,我可以簡單地給你一個解決方案,但這對你毫無幫助,因為通常有不同的方法可以得到相同的結果,但在某些情況下,你應該更喜歡一種方法而不是另一種方法。

回到你的問題

這是一個簡單的例子:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
import random

class MyApp(App):
    def build(self):
        self.layout = BoxLayout()
        self.btn = Button(text="press", on_press=self.my_btn_method)
        self.lbl = Label(text="")
        self.layout.add_widget(self.btn)
        self.layout.add_widget(self.lbl)

        return self.layout

    def my_btn_method(self, instance):
        self.lbl.text = str(random.randint(0,100))

MyApp().run()

解釋:

每個按鈕 class 和每個從按鈕 class 繼承的 class 都有一個 on_press 方法。

您基本上有兩種可能性,或者您編寫自己的自定義按鈕 class 並覆蓋此 class 中的 on_press 方法,或者您編寫自定義方法並將此方法分配給按鈕屬性 on_press ,就像我在本示例中所做的那樣。 執行此操作時,您的自定義方法必須將按鈕實例作為屬性。

要更改標簽文本,我只需為標簽文本屬性分配一個新字符串。 我真的希望,這可以幫助您解決問題。 如果您有一些困難,請寫評論,我會盡力幫助您。

還有一個 on_release 方法,您可以使用與 on_press 方法相同的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM