立即保存用户输入 windows

save userinput in a second windows

我的代码有问题当我 运行 程序而不是单击按钮时保存用户输入我还尝试创建一个函数来检测是否 entry1.get() == none 不要保存输入“input”,但这没有用感谢您的帮助和时间

我的代码:

#imports

#define the first tk window
window = Tk()
window.geometry("655x600")
window.title("")

icon = PhotoImage(file="data/icons/icon.png")
window.iconphoto(True,icon)
window.config(background="#2e3033")

#savefiles
savefile1 = open("data/userinput/data1.txt","w", encoding="utf-8")

#button  functions
def new_window1():
    global entry1
    window2 = Tk()
    window2.geometry("500x100+200+300")
    window2.config(background="#2e3033")
    window2.title("Edit Button 1")
    entry1 = Entry(window2,width=100, font= ("Arial",12))
    entry1.place(x=5,y=30)
    Button1 = Button(window2, text="save",command=lambda:[savefile1.write(entry1.get()),window2.destroy()])
    Button1.place(x=5,y=70)


#buttons
image1 = PhotoImage(file="images/streamdeximage1.png")
button1 = Button(window, text="hello" , command=new_window1 , image=image1)
button1.place(x=20,y=20)

window.mainloop()

尽管你的代码保存了我这边第二次 window 按钮点击时的数据,这里还是有一些变化

  • 应该只有一个根window,就是TK(),如果你有多个window,那就用Toplevel()
  • 在打开文件但从未关闭文件时使用上下文管理器在文件中保存数据
  • 删除那个没有任何意义的全局入口声明
  • 如果需要通过刷新缓冲区立即写入数据,请使用file.flush()
def save_data(data):
    with open("data.txt", "w", encoding="utf-8") as file:
        file.write(data)
        file.flush()


# button  functions
def new_window1():
    window2 = Toplevel()
    window2.geometry("500x100+200+300")
    window2.config(background="#2e3033")
    window2.title("Edit Button 1")
    entry1 = Entry(window2, width=100, font=("Arial", 12))
    entry1.place(x=5, y=30)
    button1 = Button(window2, text="save", command=lambda: [save_data(entry1.get()), window2.destroy()])
    button1.place(x=5, y=70)