与python和Kivy搏斗

与python和Kivy搏斗,python,kivy,Python,Kivy,我正在学习python和Kivy,我真的很难理解如何从KivyGUI调用函数和继续函数 这是我的.py: import csv import os import easygui import kivy kivy.require('1.0.7') from kivy.app import App from kivy.animation import Animation from kivy.uix.button import Button from kivy.uix.label import La

我正在学习python和Kivy,我真的很难理解如何从KivyGUI调用函数和继续函数

这是我的.py:

import csv
import os
import easygui
import kivy
kivy.require('1.0.7')

from kivy.app import App
from kivy.animation import Animation
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput

def csvImport(filename):
    with open(filename, 'rb') as f:
        reader = csv.reader(f)
        your_list = list(reader)
        return your_list

class LoadFile(App):
    def FileLoadScreen(self):
        self.add_widget(Button(size_hint_y=(None), height=('48dp'), text='Select File',
                    on_press=self.ImportFile))

    def ImportFile(self, instance):
        filepath = easygui.fileopenbox()
        if filepath!='.':
            a=csvImport(filepath)
            instance.text='File Loaded'
            instance.disabled=True

class loginBAKApp(App):
    def logAuth(username,password):
        if username!='' and password!='':
            print('ok')
    kv_directory = 'GUI'

if __name__ == '__main__':
    loginBAKApp().run()
这是我的loginBAK.kv:

#:kivy 1.9.0
GridLayout:
    row_force_default: True
    row_default_height: 40
    rows: 3
    cols: 2
    padding: 10
    spacing: 10
    Label:
        id: userLabel
        text: 'Username:'
    TextInput:
        id: username
    Label:
        id: passwordLabel
        text: 'Password:'
    TextInput:
        id: password
        password: True
    Button:
        id:btn_login
        text: 'Login'
        on_press: print('OK')
这段代码似乎可以正常工作(当我单击登录按钮时,它会打印“确定”。我试图用

on_press: logAuth(username,password)
我得到一个错误,logAuth没有定义

最终,我在这里尝试的模型(作为我的第一次学习经验)是点击登录按钮,只要字段不为空,显示登录成功消息5秒钟,然后删除字段并调用LoadFile应用程序(添加一个可以单击以选择和导入文件的按钮)

我到底做错了什么?我已经在网上筛选了大约60个脚本,几个小时来一直在看Kivy的例子,我不知道我是怎么做错的。有人能给我指出正确的方向和/或建议如何创建/删除gui来完成我描述的事情吗?我对Kivy是新手(并且可以编写基本的python脚本)因此,当我阅读有关stackoverflow的其他一些问题时,这一切都有点让人困惑

on_press: logAuth(username,password)

logAuth是应用程序类的方法,而不是kv命名空间中定义的函数。您可以改为使用
app.logAuth(…)
app
是一个引用当前应用实例的关键字。

好的,这很有意义。我现在已经完成了该部分的工作,但我仍在努力找出如何删除元素并调用下一个函数。