Python KivyMD:如何使用按钮调用函数?
我是kivy和kivyMD的新手,我试图调用一个函数来打印用户的电子邮件和密码。在这段代码中,如何绑定函数或在按下按钮时使用? 我尝试使用on_pressed:root.function()方法,但它不起作用,因为我的函数不是在pr emade屏幕管理器中编写的 .PYPython KivyMD:如何使用按钮调用函数?,python,kivy,Python,Kivy,我是kivy和kivyMD的新手,我试图调用一个函数来打印用户的电子邮件和密码。在这段代码中,如何绑定函数或在按下按钮时使用? 我尝试使用on_pressed:root.function()方法,但它不起作用,因为我的函数不是在pr emade屏幕管理器中编写的 .PY import... Builder.load_string(""" #:include kv/login.kv #:import utils kivy.utils #:import images_path k
import...
Builder.load_string("""
#:include kv/login.kv
#:import utils kivy.utils
#:import images_path kivymd.images_path
""")
class MyApp(MDApp):
def __init__(self, **kwargs):
self.title = "iKarate"
self.theme_cls.theme_style = "Light"
self.theme_cls.primary_palette = "Blue"
self.sm = ScreenManager()
super().__init__(**kwargs)
def build(self):
self.sm.add_widget(Factory.LoginScreen())
return self.sm
def doThis(self):
email = self.email
password = self.password
print(email, password)
if __name__ == "__main__":
MyApp().run()
.KV
#:kivy 1.11.1
<LoginScreen@Screen>:
name: "login"
BackgroundLayer:
#MDCard:
MDCard:
orientation: "vertical"
size_hint: [0.8, 0.6]
pos_hint: {"center_x": 0.5, "center_y": 0.6}
BoxLayout:
orientation: "vertical"
MDLabel:
text: "Welcome to the log in page"
text_size: self.size
font_size: 25
bold: True
halign: "center"
valign: "middle"
Image:
size_hint_y: 10
source: "kv/image.png"
MDTextField:
id: email
hint_text: "E-mail"
MDTextField:
id: password
hint_text: "Password"
password: True
MDFillRoundFlatButton:
id: btn
text: "Sign In"
width: dp(200)
pos_hint: {"center_x": .5}
on_press:print("pressed")
<BackgroundLayer@BoxLayout>:
orientation: "vertical"
BoxLayout:
orientation: "vertical"
canvas.before:
Color:
rgba: utils.get_color_from_hex("#00146e")
Rectangle:
pos: 0, self.center_y + self.height/3 - 50
size: (self.width,70)
BoxLayout:
orientation: "horizontal"
#:kivy 1.11.1
:
名称:“登录”
背景层:
#MD卡:
MD卡:
方向:“垂直”
大小提示:[0.8,0.6]
pos_提示:{“center_x”:0.5,“center_y”:0.6}
盒子布局:
方向:“垂直”
MDLabel:
文本:“欢迎进入登录页面”
文本大小:self.size
字体大小:25
黑体字:对
哈利恩:“中心”
valign:“中间”
图片:
尺码提示y:10
资料来源:“kv/image.png”
MDTextField:
id:电子邮件
提示文字:“电子邮件”
MDTextField:
id:密码
提示文字:“密码”
密码:True
MDFillRoundFlatButton:
id:btn
文本:“登录”
宽度:dp(200)
pos_提示:{“center_x”:.5}
按下:打印(“按下”)
:
方向:“垂直”
盒子布局:
方向:“垂直”
在以下情况之前:
颜色:
rgba:utils.get_color_from_hex(“#00146e”)
矩形:
位置:0,自中心+自高度/3-50
尺寸:(自身宽度,70)
盒子布局:
方向:“水平”
按下:打印(“按下”)成功打印“按下”如果您从
应用程序调用函数,请使用此选项
on_press: app.doThis()
on_press: root.doThis()
如果您从屏幕
类调用函数,请使用此选项:
on_press: app.doThis()
on_press: root.doThis()
谢谢现在调用了该函数,但未传递文本字段数据。我现在如何通过考试?最好先找例子。就我个人而言,我在screen类中创建了一个方法来提取文本并对其进行处理。代码:self.ids..text
。别忘了把答案设为正确答案)我猜出来了。我刚刚在KV文件中调用了doThis(电子邮件、密码),并在python文件中编辑了参数。现在,KV文件使用函数调用本身传递数据