首页 > 解决方案 > 如何在不获取 PY_VAR0 作为值的情况下从 tkinter 输入框保存到文本文件?

问题描述

我对 Python 相当有信心,但从未使用过 tkinter,所以我非常感谢一些帮助/

我正在尝试使用 tkinter 和文本文件创建一个基本的登录系统。当我保存到文本文件时,它只是将 PY_VAR0 和 PY_VAR1 保存到文本文件中,我尝试使用 .get 但错误说 str 没有属性 .get

我尝试了很多东西,但没有运气 - 我有一种感觉,我做错了什么非常明显,我只是没有意识到

有些代码在这里可能完全没用,但我想我会把它全部包括在内,因为它可以帮助你找出导致问题的原因

有人可以帮忙吗?

# importing librarys
import tkinter
from tkinter import *
from functools import partial

#setting up window
window = tkinter.Tk()
window.title('Widgets Example')
window.title('All Planner_login')
window.configure(width=355, height=355)

def validateLogin(username, password):
    print("username entered :", username.get())
    print("password entered :", password.get())



winWidth = window.winfo_reqwidth()
winwHeight = window.winfo_reqheight()
posRight = int(window.winfo_screenwidth() / 2 - winWidth / 2)
posDown = int(window.winfo_screenheight() / 2 - winwHeight / 2)
window.geometry("+{}+{}".format(posRight, posDown))

fr = tkinter.Frame(window, height=175, width=295, bg='#1f85de', borderwidth=75)
fr.place(relx=.5, rely=.5, anchor="c")
lblInst = tkinter.Label(fr, text='log in:', fg='#000000', bg='#1f85de', font=('Helvetica', 16))
lbl = tkinter.Label(fr, text="Username:", bg='#1f85de')
username = StringVar()
ent = tkinter.Entry(fr, textvariable=username)
lbl2 = tkinter.Label(fr, text='Password:', bg='#1f85de')
password = StringVar() 
ent2 = tkinter.Entry(fr,show='*', textvariable=password)
validateLogin = partial(validateLogin, username, password)
btn = tkinter.Button(fr, text='Login', command=validateLogin, fg='#a1dbcd', bg='#1aa831')

usernameSave=str(username)
passwordSave=str(password)

text_file = open("passdoc.txt", "w")
n = text_file.write(usernameSave)
text_file.close()

text_file = open("passdoc.txt", "w")
n = text_file.write(passwordSave)
text_file.close()




lblInst.pack()
lbl.pack()
ent.pack()
lbl2.pack()
ent2.pack()
btn.pack()
window.configure(background='#6b18ba')
window.mainloop()



#menu window
from tkinter import *
window=Tk()
window.title('ALL Planner')
window.configure(width=1000, height=600)
window.configure(background='#6b18ba')

winWidth = window.winfo_reqwidth()
winwHeight = window.winfo_reqheight()
posRight = int(window.winfo_screenwidth() / 2 - winWidth / 2)
posDown = int(window.winfo_screenheight() / 2 - winwHeight / 2)
window.geometry("+{}+{}".format(posRight, posDown))

fr = tkinter.Frame(window, height=500, width=900, bg='#1f85de', borderwidth=75)
fr.place(relx=.5, rely=.5, anchor="c")
lbl = tkinter.Label(fr, text="Notes:", bg="#6b18ba")


window.mainloop()
 

标签: pythonfiletkinter

解决方案


推荐阅读