gpt4 book ai didi

python - 如何使用Python和kivy输入条件语句?

转载 作者:行者123 更新时间:2023-11-30 22:47:43 26 4
gpt4 key购买 nike

我是基维新手。我正在使用 python 和 kivy 编写以下代码,这是一个非常简单的代码,询问用户他/她的姓名和饥饿程度。

import kivy #import kivy module
kivy.require('1.0.6') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput

class human(GridLayout):
#This is a human class
def __init__(self, **kwargs):
super(human, self).__init__(**kwargs)
self.cols = 2
self.add_widget(Label(text='Enter your name'))
self.name = TextInput(multiline=False)
self.add_widget(self.name)
self.add_widget(Label(text='Enter your hunger level(0-10)'))
self.hunger = TextInput(multiline=False)
self.add_widget(self.hunger)

class MyApp(App):

def build(self):
return human()


if __name__ == '__main__':
MyApp().run()

现在我想要一个条件语句来检查输入的饥饿程度是否小于 5。如果是这样,它将打印“正常”,否则它将打印“异常”。

我应该做什么?

最佳答案

你显然不能立即检查饥饿程度,在 build() 方法结束之前,用户可能还没有看到窗口,所以你必须为其组织代码来检查值一段时间后,问题是何时,通常,您想要对某些事件使用react,而不是等待特定的时间。 Kivy 提供了两种方法。

您可以决定用户必须通过按下按钮来验证其输入。为此,您需要添加。
self.add_widget(Button(text="ok", on_press=self.check_hunger)

并添加check_hunger方法human ,这将检查 self.hunger 中的当前文本。

但是您可以决定更具 react 性,而不是对文本输入的任何验证使用react。要实现此目的,您只需将 check_hunger 绑定(bind)到 on_text_validate饥饿事件。

添加
self.hunger.bind(on_text_validate=self.hunger)
之后self.hunger = TextInput(multiline=False)

或者只需编辑此行即可读取
self.hunger = TextInput(multiline=False, on_text_validate=self.check_hunger)

为了举例,如果您想在某个特定时间后检查饥饿程度,您可以在程序顶部添加:
from kivy.clock import Clock
并把
Clock.schedule_once(self.check_hunger, 5)
在你的 __init__ 的末尾方法。

无论如何,为了实现您的要求,check_hunger方法看起来像:


def check_hunger(self, *args):
if int(self.hunger.text) < 5:
print("normal")
else:
print("abnormal")

希望对你有帮助!

关于python - 如何使用Python和kivy输入条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420988/

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