gpt4 book ai didi

android - 如何使用kivy从TextInput写入并保存到文本文件中

转载 作者:太空狗 更新时间:2023-10-29 12:43:28 26 4
gpt4 key购买 nike

我想在 TextInput 小部件中输入文本以将其保存到文本文件中。请有人告诉我如何获取在 TextInput 小部件中输入的值以将其保存到文本文件中的示例。

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
import os

此方法是尝试保存到文本文件中,但没有成功

def save(self,nam):
fob = open('c:/test.txt','w')
write = fob.write(str(name))


Builder.load_string('''
<MenuScreen>:
BoxLayout:
Button:
text: 'Add New Staff'
on_press: root.manager.current = 'add_staff'
Button:
text: 'View Staff Profile'
Button:
text: 'Salary report'

<Add_new_staff>:
nam: str(name_input)
job: job_input
GridLayout:
cols: 2
Label:
text: 'Name'
TextInput:
id: name_input
multiline: False
Label:
text: 'Job'
TextInput:
id: job_input
Label:
text: 'Salary'
TextInput:
Label:
text: 'Date of Joining'
TextInput:
Button:
text: 'Back to menu'
on_press: root.manager.current = 'menu'
Button:
text: 'Save'
on_press: app.save(self,nam)
''')


class MenuScreen(Screen):
pass

class Add_new_staff(Screen):
pass

sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(Add_new_staff(name='add_staff'))

class TestApp(App):
def build(self):
return sm



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

最佳答案

这是您的示例。

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput


Builder.load_string('''
<MenuScreen>:
BoxLayout:
Button:
text: 'Add New Staff'
on_press: root.manager.current = 'add_staff'
Button:
text: 'View Staff Profile'
Button:
text: 'Salary report'

<Add_new_staff>:
nam: str(name_input)
job: job_input
GridLayout:
cols: 2
Label:
text: 'Name'
TextInput:
id: name_input
multiline: False
Label:
text: 'Job'
TextInput:
id: job_input
Label:
text: 'Salary'
TextInput:
Label:
text: 'Date of Joining'
TextInput:
Button:
text: 'Back to menu'
on_press: root.manager.current = 'menu'
Button:
text: 'Save'
on_press: app.save(name_input.text, job_input.text)
''')


class MenuScreen(Screen):
pass

class Add_new_staff(Screen):
pass

sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(Add_new_staff(name='add_staff'))

class TestApp(App):
def build(self):
return sm

def save(self, name, job):
fob = open('c:/test.txt','w')
fob.write(name + "\n")
fob.write(job)
fob.close()

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

但有几句忠告。 1. 而是使用数据库(sqlite3?)来存储此类数据。它将更有效地扩展,当您的数据变大时,您可以更快地查找。 2. 存储您的数据是所有用户的“读/写”位置。 Kivy 为此提供了一个便利的功能。

http://kivy.org/docs/api-kivy.app.html?highlight=data_dir#kivy.app.App.user_data_dir

希望对您有所帮助?

干杯

关于android - 如何使用kivy从TextInput写入并保存到文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com