如何创建一个函数来更改变量并用更新的变量刷新Kivy应用程序



我在Python 3中使用Kivy创建的应用程序是为了自学匈牙利语。当应用程序加载时,它只显示一个匈牙利语单词和英文翻译。我想做的是,当我点击唯一的按钮(on_press(时,我需要调用一个函数,并用一个新的函数替换可见的匈牙利语单词和英语翻译。

# hungarian_tutor.py
""" A program to teach Hungarian translated from English """
import kivy
kivy.require("1.11.1")
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.core.audio import SoundLoader
from random import choice
import time
import hungarian_language as hl

class Grid(GridLayout):
def __init__(self, **kwargs):
super(Grid, self).__init__(**kwargs)
self.cols = 1
self.phrase = choice(hl.basics)
self.eng_text = self.phrase[0]
self.hun_text = self.phrase[1]
self.hun_audio = self.phrase[2]
self.add_widget(Label(text="English  >  {}".format(self.eng_text), font_size=50))
self.add_widget(Label(text="Hungarian  >  {}".format(self.hun_text), font_size=50))
self.add_widget(Label(text=hl.alphabet, font_size=20))
self.btn1 = Button(text="New Phrase", font_size=40)
self.add_widget(self.btn1)
#self.btn1.bind(on_press=)

class MainApp(App):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def build(self):
return Grid()

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

提前感谢

使用时:

self.btn1.bind(on_press=self.pressed)

那么self.pressed()方法应该看起来像:

def pressed(self, button_instance):
print(button_instance, 'pressed')

最新更新