如何从程序中保存信息然后使用它再次在程序中显示(简单编程) [英] How to save information from the program then use it to show in program again (simple programming)

查看:24
本文介绍了如何从程序中保存信息然后使用它再次在程序中显示(简单编程)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用户界面,我做的.它有条目表单和树视图部分.当我输入信息时,它会显示在树视图上(有 4 列的表格).但是当我关闭构建的 gui 时,这些信息消失了,然后当我再次构建时,树视图中没有显示任何信息.我不想将信息发送到数据服务器或任何云,我需要将其保存在我的本地驱动器或该程序所在的本地文件夹中.

<预><代码>#从 tkinter 导入 *从 tkinter 导入 ttk将网页浏览器导入为网页定义添加():网络 = website.get()我们 = user.get()pas = 密码.get()et = etc.get()info = [web,us,pas,'*'+et]tree.insert('','end',values=info)定义删除():item = tree.selection()树.删除(项目)定义联系():url='https://bit.ly/'web.open(网址)#----------------------------------------------窗口 = Tk()window.geometry()window.title('密码\'')window.iconbitmap('icon.ico')菜单=菜单(窗口)menucontact = 菜单(窗口,撕下=0)menucontact.add_command(label='联系我们',command = contact)menu.add_cascade(label='联系我们',menu=menucontact)window.config(菜单=菜单)#--------------变量--------------网站 = StringVar()用户 = StringVar()密码 = StringVar()etc = StringVar()# - - - - - - - - -框架 - - - - - - - - - - - - -F1 = LabelFrame(window,text='Password\'s Book')F1.grid(row=0,column=0,padx=3,pady=3)#-------Buttons 和 EntryBlanks-------------------LF1 =ttk.Label(F1,text='网站')LF1.grid(row=0,column=0,padx=10,pady=5)EF1 = ttk.Entry(F1,textvariable=website)EF1.grid(row=0,column=1,padx=10,pady=5)LF2 =ttk.Label(F1,text='用户名')LF2.grid(row=1,column=0,padx=10,pady=5)EF2 = ttk.Entry(F1,textvariable=user)EF2.grid(row=1,column=1,padx=10,pady=5)LF3 =ttk.Label(F1,text='密码')LF3.grid(row=2,column=0,padx=10,pady=5)EF3= ttk.Entry(F1,textvariable=password)EF3.grid(row=2,column=1,padx=10,pady=5)LF4 =ttk.Label(F1,text='etc.')LF4.grid(row=3,column=0,padx=10,pady=5)EF4= ttk.Entry(F1,textvariable=etc)EF4.grid(row=3,column=1,padx=10,pady=5)B1 = ttk.Button(F1,text='Add',width=18,command= addit)B1.grid(row=4,column=1,pady=5,padx=10)B2 = ttk.Button(F1,text='Delete',command= deleteit)B2.grid(row=4,column=0,pady=5,padx=5)#LF2 = LabelFrame(window,text='这是列表')#LF2.grid(row=5,column=0)#------------TreeViewlist--------------Header =['网站','用户名','密码','等']tree=ttk.Treeview(window, height=15,column=Header , show='headings')tree.grid(row=6,column=0,padx=5,pady=5)#------------添加标题---------------对于 Header 中的 col :树.列(列,宽度= 80)tree.heading(col,text=col.title())window.mainloop()

这是我为个人生活创建的一个简单程序.如果您对这个概念有什么建议,请在下方留言

解决方案

尝试使用 pickle.

from tkinter import *从 tkinter 导入 ttk,消息框将网页浏览器导入为网页进口泡菜定义添加():网络 = website.get()我们 = user.get()pas = 密码.get()et = etc.get()info = [web,us,pas,'*'+et]tree.insert('','end',values=info)定义删除():item = tree.selection()树.删除(项目)定义联系():url='https://bit.ly/'web.open(网址)定义 on_closure():if messagebox.askokcancel("退出", "你想退出吗?"):x=[tree.item(x)['values'] for x in tree.get_children()]filehandler = open('data.pickle', 'wb')pickle.dump(x,filehandler)filehandler.close()窗口.销毁()#----------------------------------------------窗口 = Tk()window.geometry()window.title('密码\'')window.iconbitmap('icon.ico')菜单=菜单(窗口)menucontact = 菜单(窗口,撕下=0)menucontact.add_command(label='联系我们',command = contact)menu.add_cascade(label='联系我们',menu=menucontact)window.config(菜单=菜单)#--------------变量--------------网站 = StringVar()用户 = StringVar()密码 = StringVar()etc = StringVar()# -  -  -  -  -  -  -  - -框架 -  -  -  -  -  -  -  -  -  -  -  -  -F1 = LabelFrame(window,text='Password\'s Book')F1.grid(row=0,column=0,padx=3,pady=3)#-------Buttons 和 EntryBlanks-------------------LF1 =ttk.Label(F1,text='网站')LF1.grid(row=0,column=0,padx=10,pady=5)EF1 = ttk.Entry(F1,textvariable=website)EF1.grid(row=0,column=1,padx=10,pady=5)LF2 =ttk.Label(F1,text='用户名')LF2.grid(row=1,column=0,padx=10,pady=5)EF2 = ttk.Entry(F1,textvariable=user)EF2.grid(row=1,column=1,padx=10,pady=5)LF3 =ttk.Label(F1,text='密码')LF3.grid(row=2,column=0,padx=10,pady=5)EF3= ttk.Entry(F1,textvariable=password)EF3.grid(row=2,column=1,padx=10,pady=5)LF4 =ttk.Label(F1,text='etc.')LF4.grid(row=3,column=0,padx=10,pady=5)EF4= ttk.Entry(F1,textvariable=etc)EF4.grid(row=3,column=1,padx=10,pady=5)B1 = ttk.Button(F1,text='Add',width=18,command= addit)B1.grid(row=4,column=1,pady=5,padx=10)B2 = ttk.Button(F1,text='Delete',command= deleteit)B2.grid(row=4,column=0,pady=5,padx=5)#LF2 = LabelFrame(window,text='这是列表')#LF2.grid(row=5,column=0)#------------TreeViewlist--------------Header =['网站','用户名','密码','等']tree=ttk.Treeview(window, height=15,column=Header , show='headings')tree.grid(row=6,column=0,padx=5,pady=5)#------------添加标题---------------对于 Header 中的 col :树.列(列,宽度= 80)tree.heading(col,text=col.title())项目 = []尝试:filehandler = open('data.pickle', 'rb')项目 = pickle.load(filehandler)filehandler.close()除了:经过对于项目中的项目:tree.insert('','end',values=item)window.protocol("WM_DELETE_WINDOW", on_closure)window.mainloop()

I have a user-interface, I made. It has Entry form and Treeview section. When I entry information, it show on the treeview (table with 4 column). But when I close the built gui, Those information disappear then when I build again no information show in treeview. I don't want to send information to data server or any clouds, I need save it in my local drive or local folder that this program locate.

#
from tkinter import *
from tkinter import ttk
import webbrowser as web

def addit() :
    web = website.get()
    us = user.get()
    pas = password.get()
    et = etc.get()

    info = [web,us,pas,'*'+et]
    tree.insert('','end',values=info)

def deleteit():
    item = tree.selection()
    tree.delete(item)

def contact():
    url='https://bit.ly/'
    web.open(url)

#----------------------------------------------

window = Tk()
window.geometry()
window.title('Password \'s Book')
window.iconbitmap('icon.ico')


menu=Menu(window)
menucontact = Menu(window, tearoff=0)
menucontact.add_command(label='Contact us',command = contact)

menu.add_cascade(label='Contact us',menu=menucontact)
window.config(menu=menu)


#---------------Variables----------------------
website = StringVar()
user = StringVar()
password = StringVar()
etc = StringVar()


#-----------------Frame--------------------------
F1 = LabelFrame(window,text='Password\'s Book')
F1.grid(row=0,column=0,padx=3,pady=3)

#-------Buttons and EntryBlanks-------------------
LF1 =ttk.Label(F1,text='Website')
LF1.grid(row=0,column=0,padx=10,pady=5)
EF1 = ttk.Entry(F1,textvariable=website)
EF1.grid(row=0,column=1,padx=10,pady=5)

LF2 =ttk.Label(F1,text='Username')
LF2.grid(row=1,column=0,padx=10,pady=5)
EF2 = ttk.Entry(F1,textvariable=user)
EF2.grid(row=1,column=1,padx=10,pady=5)

LF3 =ttk.Label(F1,text='Password')
LF3.grid(row=2,column=0,padx=10,pady=5)
EF3= ttk.Entry(F1,textvariable=password)
EF3.grid(row=2,column=1,padx=10,pady=5)

LF4 =ttk.Label(F1,text='etc.')
LF4.grid(row=3,column=0,padx=10,pady=5)
EF4= ttk.Entry(F1,textvariable=etc)
EF4.grid(row=3,column=1,padx=10,pady=5)

B1 = ttk.Button(F1,text='Add',width=18 ,command= addit )
B1.grid(row=4 ,column=1,pady= 5,padx=10)

B2 = ttk.Button(F1,text='Delete',command= deleteit )
B2.grid(row=4 ,column=0,pady= 5,padx=5)

#LF2 = LabelFrame(window,text='This is list')
#LF2.grid(row=5,column=0)


#----------TreeViewlist----------------------
Header =['Website','Username','Password','etc']

tree=ttk.Treeview(window, height=15,column=Header , show='headings')
tree.grid(row=6,column=0,padx=5,pady=5)


#------------Add Header---------------
for col in Header :
    tree.column(col,width=80)
    tree.heading(col,text=col.title())


window.mainloop()

These is a simple program that I created for my personal life. If you have some suggestions to this concept, please leave it below

解决方案

Try it using pickle.

from tkinter import *
from tkinter import ttk, messagebox
import webbrowser as web
import pickle


def addit() :
    web = website.get()
    us = user.get()
    pas = password.get()
    et = etc.get()

    info = [web,us,pas,'*'+et]
    tree.insert('','end',values=info)

def deleteit():
    item = tree.selection()
    tree.delete(item)

def contact():
    url='https://bit.ly/'
    web.open(url)

def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        x=[tree.item(x)['values'] for x in tree.get_children()]
        filehandler = open('data.pickle', 'wb')
        pickle.dump(x,filehandler)
        filehandler.close()
        window.destroy()


#----------------------------------------------

window = Tk()
window.geometry()
window.title('Password \'s Book')
window.iconbitmap('icon.ico')


menu=Menu(window)
menucontact = Menu(window, tearoff=0)
menucontact.add_command(label='Contact us',command = contact)

menu.add_cascade(label='Contact us',menu=menucontact)
window.config(menu=menu)

#---------------Variables----------------------
website = StringVar()
user = StringVar()
password = StringVar()
etc = StringVar()


#-----------------Frame--------------------------
F1 = LabelFrame(window,text='Password\'s Book')
F1.grid(row=0,column=0,padx=3,pady=3)

#-------Buttons and EntryBlanks-------------------
LF1 =ttk.Label(F1,text='Website')
LF1.grid(row=0,column=0,padx=10,pady=5)
EF1 = ttk.Entry(F1,textvariable=website)
EF1.grid(row=0,column=1,padx=10,pady=5)

LF2 =ttk.Label(F1,text='Username')
LF2.grid(row=1,column=0,padx=10,pady=5)
EF2 = ttk.Entry(F1,textvariable=user)
EF2.grid(row=1,column=1,padx=10,pady=5)

LF3 =ttk.Label(F1,text='Password')
LF3.grid(row=2,column=0,padx=10,pady=5)
EF3= ttk.Entry(F1,textvariable=password)
EF3.grid(row=2,column=1,padx=10,pady=5)

LF4 =ttk.Label(F1,text='etc.')
LF4.grid(row=3,column=0,padx=10,pady=5)
EF4= ttk.Entry(F1,textvariable=etc)
EF4.grid(row=3,column=1,padx=10,pady=5)

B1 = ttk.Button(F1,text='Add',width=18 ,command= addit )
B1.grid(row=4 ,column=1,pady= 5,padx=10)

B2 = ttk.Button(F1,text='Delete',command= deleteit )
B2.grid(row=4 ,column=0,pady= 5,padx=5)

#LF2 = LabelFrame(window,text='This is list')
#LF2.grid(row=5,column=0)


#----------TreeViewlist----------------------
Header =['Website','Username','Password','etc']

tree=ttk.Treeview(window, height=15,column=Header , show='headings')
tree.grid(row=6,column=0,padx=5,pady=5)


#------------Add Header---------------
for col in Header :
    tree.column(col,width=80)
    tree.heading(col,text=col.title())

items = []
try:
    filehandler = open('data.pickle', 'rb')
    items = pickle.load(filehandler)
    filehandler.close()
except:
    pass

for item in items:
    tree.insert('','end',values=item)

window.protocol("WM_DELETE_WINDOW", on_closing)
window.mainloop()

这篇关于如何从程序中保存信息然后使用它再次在程序中显示(简单编程)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆