【问题标题】:How do I change the text of a button on another screen in kivy (without kv lang)如何在kivy的另一个屏幕上更改按钮的文本(没有kv lang)
【发布时间】:2021-01-12 02:28:59
【问题描述】:

我想在另一个屏幕上更改按钮文本,但我不使用 kv 语言,我该怎么做? 这是一个代码示例

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition

list=['Yes','No']


class ScreenManagement(ScreenManager):
    def __init__(self, **kwargs):
        super(ScreenManagement, self).__init__(**kwargs)


class Iniciar(Screen):
    def __init__(self, **kwargs):
        super(Iniciar, self).__init__(**kwargs)
        self.btn = Button(text='INICIAR', size_hint=(.2, .1), pos_hint={'center_x': .5, 'y': .05}, background_color=(0, 0, 1.60, 1),font_size=24, color=(.8, .9, 0, 1))
        self.btn.bind(on_press=self.press_button)
        self.add_widget(self.btn)

    def press_button(self, *args):
        list[0] = 'Apple'
        list[1] = 'Banana'
        self.manager.current = 'categorical'


class Categorical(Screen):
    def __init__(self, **kwargs):
        super(Categorical, self).__init__(**kwargs)
        self.button_1 = Button(text=list[0], size_hint=(.2, .1), pos_hint={'center_x': .35, 'y': .05})
        self.button_2 = Button(text=list[1], size_hint=(.2, .1), pos_hint={'center_x': .64, 'y': .05})
        self.add_widget(self.button_1)
        self.add_widget(self.button_2)

class Application(App):
    def build(self):
        sm = ScreenManagement(transition=FadeTransition())
        sm.add_widget(Iniciar(name='iniciar'))
        sm.add_widget(Categorical(name='categorical'))
        return sm

if __name__ == "__main__":
    Application().run()

在这种情况下,我会更改包含按钮文本值的列表

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    您不需要为此使用列表。一种简单的方法是将按钮小部件分配给一个变量并使用button.text。就像在您的代码中一样,您已将 Button 小部件分配给名为 self.button_1self.button_2 的变量。因此,要更改 button_1 的文本,只需对 button_2 执行 self.button_1.text = 'new' 相同,self.button_2.text='new2'

    【讨论】:

      【解决方案2】:

      self.manager.get_screen('ScreenWithButton').ids['buttonid'].text = ""

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多