使用Tkinter输入框保存和搜索数据

时间:2016-08-09 07:57:55

标签: python tkinter

这可能是一个奇怪的问题,因为我是Python新手。

我正在尝试在Python中创建表单,可以将数据输入到框中并保存,然后再次打开。我目前正在使用Tkinter创建一个带有输入框和按钮的Gui:

import sys
from tkinter import * 
def mstore():
pass
return

def msearch():
file_path = filedialog.askopenfilename()
return



mGui=Tk()

mGui.geometry('450x450+200+200')
mGui.title('Form Test')

#Top
mTitle = Label (mGui,text='Heading Text',bg='white').grid(row=1,column=1)
mDetail = Label (mGui,text='Flavour you can see',bg='white').grid(row=2,column=1)


#Entry Boxes
mFName = Label (mGui,text='Barcode',bg='white').grid(row=3,column=1)
mEntryname = Entry().grid(row=3,column=2)


#Buttons
mSave = Button (mGui,text='Save',bg='white', command = mstore).grid(row=4,column=1)
mSearch = Button (mGui,text='Search',bg='white', command = msearch).grid(row=5,column=1)




mGui.mainloop()

搜索将用于打开之前已保存的文件并用该数据填充框,但在此之前我需要帮助以可检索的方式保存数据 - 所有信息我找到关于网络表格。我也尝试用SQLite3保存信息,但我发现这不是我想要的。 任何帮助/指导将不胜感激。 谢谢,

1 个答案:

答案 0 :(得分:0)

你好Gregulimy!

我简化了您的代码并使其按照您的意愿执行。我留下的评论解释了代码的作用。如果您对我所做的事有任何疑问,请随时提出!

from tkinter import *

def mstore(text):
    file = open("file.txt", "w")            # Create file.txt
    file.write(text)                        # Write contents of mEntryname to file
    file.close()                            # Closes text file

def msearch():
    file = filedialog.askopenfilename()     # Stores file directory that user chose
    open_file = open(file, 'r')             # Opens file user chose
    print(open_file.read())                 # Displays contents in console
    open_file.close()                       # Closes text file

# Window Creation and Settings
window = Tk()
window.geometry('450x500')          
window.title('Form Test')

# Create Widgets
mTitle = Label (window,text='Heading Text',bg='white')
mDetail = Label (window,text='Flavour you can see',bg='white')
mFName = Label (window,text='Barcode',bg='white')
mEntryname = Entry(window)
# Runs mstore function when pressed (passing the contents of the entry box)
mSave = Button (window,text='Save',bg='white', command = lambda: mstore(mEntryname.get()))
# Runs msearch function when pressed
mSearch = Button (window,text='Search',bg='white', command = lambda: msearch())

# Render Widgets
mTitle.pack()
mDetail.pack()
mFName.pack()
mEntryname.pack()
mSave.pack()
mSearch.pack()

window.mainloop()