按下按钮时如何在TextInput中打印值? (基维)

时间:2017-09-14 22:11:16

标签: python-3.x class kivy

我正在制作日志记录GUI,但是当按下按钮时,我找不到如何打印两个TextInput的值。

这是我的.py

import kivy

from kivy.app               import App
from kivy.uix.boxlayout     import BoxLayout

#[...]  

class Login_Screen(BoxLayout):
    def register(self):
        print('Hi! I want here have the user and password, so later I can make a proper register function.')
    pass

class MainApp(App):
    def build(self):
        return Login_Screen()

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

这是我的.kv(重要部分位于最后一行。)

#[...]

<Login_Screen>:
    #[...]

    BoxLayout:
        AnchorLayout:
            #[...]
            TextInput01: # Come from @TextInput
                id: user_input              

    BoxLayout:
        #[...]
        AnchorLayout:
            TextInput01: # Come from @TextInput
                id: password_input

    BoxLayout:
        Button01: # Come from @Button
            id: login
            text: 'Login'
        Button01: # Come from @Button
            id: register
            text: 'Register'
            on_press: root.register()

#[...]是我删除的代码,以便更清楚。

我想按password_input时打印user_input值和register值。
代码必须在.py文件中,因为我不想只打印值,我想做一些更实用的功能,但这是一个让我理解的例子。

1 个答案:

答案 0 :(得分:1)

请参阅下面的摘录和示例。

片段

def register(self):
    print("user: ", self.ids.user_input.text)
    print("password: ", self.ids.password_input.text)

实施例

main.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout


class Login_Screen(BoxLayout):

    def register(self):
        print("user: ", self.ids.user_input.text)
        print("password: ", self.ids.password_input.text)


class MainApp(App):

    def build(self):
        return Login_Screen()


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

main.kv

#:kivy 1.10.0

<Login_Screen>:
    BoxLayout:
        AnchorLayout:
            TextInput:
                id: user_input

    BoxLayout:
        AnchorLayout:
            TextInput:
                id: password_input

    BoxLayout:
        Button:
            id: login
            text: 'Login'
        Button:
            id: register
            text: 'Register'
            on_press: root.register()

输出

enter image description here