【发布时间】:2016-01-28 01:26:05
【问题描述】:
我正在学习 python 和 Kivy,我真的很难理解如何从 Kivy GUI 调用函数和继续函数。
这是我的 .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 的其他一些问题时,这一切都让人有些困惑。
【问题讨论】: