我目前正在做一个程序,日志与一些不同的东西,随着工作的球拍串。我在信息保存后重置kivy文本输入时遇到问题。这段代码可能很难读懂,因为它是我在过去几天里搞乱事情的一个小拼凑。如果你能帮助我了解如何重置文本输入和任何其他改进将不胜感激-克里斯-新手
import kivy
import gspread
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.core.window import Window
from kivy.uix.gridlayout import GridLayout
from kivy.core.window import Window
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager , Screen
from oauth2client.service_account import ServiceAccountCredentials
list = []
Client = ''
Racquet = ''
String = ''
Tension = ''
scope = ['https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', scope)
client = gspread.authorize(creds)
sheet = client.open("Stringing Log MAIN").sheet1
def clients(instance, value):
print(value)
global Client
Client = str(value[8:])
global list
return
def racquets(instance, value):
print(value)
global Racquet
Racquet = str(value[9:])
global list
return
def strings(instance, value):
print(value)
global String
String = str(value[8:])
global list
return
def tensions(instance, value):
print(value)
global Tension
Tension = str(value[9:])
global list
return
clienttxt = open("Client", "w")
racquettxt = open("Racquet", "w")
stringtxt = open("String", "w")
tensiontxt = open("Tension", "w")
def Test(x):
global sheet
list.insert(0, Client)
list.insert(1, Racquet)
list.insert(2, String)
list.insert(3, Tension)
sheet.insert_row(list, 1)
list.clear()
return
class MyGrid(GridLayout):
def __init__(self, **kwargs):
super(MyGrid, self).__init__(**kwargs)
self.cols = 1
client = TextInput(text = "Client: ", write_tab = False, multiline=False)
client.bind(text=clients)
self.add_widget(client)
racquet = TextInput(text= "Racquet: ", write_tab = False, multiline=False)
racquet.bind(text=racquets)
self.add_widget(racquet)
string = TextInput(text= "String: ", write_tab = False, multiline=False)
string.bind(text=strings)
self.add_widget(string)
tension = TextInput(text= "Tension: ", write_tab = False, multiline=False)
tension.bind(text=tensions)
self.add_widget(tension)
button1 = Button(text="Submit")
self.add_widget(button1)
button1.bind(on_press=Test)
class StringingApp(App):
def build(self):
return MyGrid()
if __name__ == "__main__":
StringingApp().run()
您可以在
__init__()
方法中保存对每个TextInput
的引用,例如:然后,将
Test
方法移到MyGrid
类中:你的
Button
绑定变成:下面是我建议的修改之后的整个
MyGrid
类:相关问题 更多 >
编程相关推荐