gpt4 book ai didi

python - 在 Kivy 应用程序中获取文本输入值

转载 作者:太空狗 更新时间:2023-10-29 22:22:19 24 4
gpt4 key购买 nike

Python/Kivy 的新手尝试构建一个带有输入框、确定按钮和点击确定按钮时应更改文本的标签的测试应用程序。但我得到的是“NameError: global name 'txt1' is not defined'。我做错了什么?

# import Kivy
import kivy
import random

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

# my app
class MyApp(App):
# layout
def build(self):
layout = BoxLayout(padding=10, orientation='vertical')
btn1 = Button(text="OK")
btn1.bind(on_press=self.buttonClicked)
layout.add_widget(btn1)
lbl1 = Label(text="test")
layout.add_widget(lbl1)
txt1 = TextInput(text='', multiline=False)
layout.add_widget(txt1)
return layout

# button click function
def buttonClicked(self,btn):
lbl1.text = "You wrote " + txt1.text

# run app
if __name__ == "__main__":
MyApp().run()

最佳答案

使用self.txt1、self.lbl1等。

class MyApp(App):
# layout
def build(self):
layout = BoxLayout(padding=10, orientation='vertical')
btn1 = Button(text="OK")
btn1.bind(on_press=self.buttonClicked)
layout.add_widget(btn1)
self.lbl1 = Label(text="test")
layout.add_widget(self.lbl1)
self.txt1 = TextInput(text='', multiline=False)
layout.add_widget(self.txt1)
return layout

# button click function
def buttonClicked(self,btn):
self.lbl1.text = "You wrote " + self.txt1.text

# run app
if __name__ == "__main__":
MyApp().run()
# join all items in a list into 1 big string

使用:

def buttonClicked(self,btn):
lbl1.text = "You wrote " + txt1.text <- only exists in the build method

关于python - 在 Kivy 应用程序中获取文本输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com