python - Tkinter 过早显示消息
问题描述
所以我一直在使用 Python 和 Tkinter 时遇到一个奇怪的错误,即消息框过早弹出。我不知道出了什么问题:它应该可以工作,对吧?
from tkinter import *
from tkinter import messagebox
with open("passwords.passwords", "a+") as f:
root = Tk()
root.geometry("1000x1000")
root.wm_title("Info Collect")
mylist = []
var1 = StringVar()
var1.set("Application:")
label1 = Label(root, textvariable=var1, height=2)
label1.grid(row=0, column=0)
var2 = StringVar()
var2.set("Password:")
label2 = Label(root, textvariable=var2, height=2)
label2.grid(row=0, column=3)
ID1 = StringVar()
ID2 = StringVar()
box1 = Entry(root, bd=4, textvariable=ID1)
box1.grid(row=0, column=1)
box2 = Entry(root, bd=5, textvariable=ID2)
box2.grid(row=0, column=4)
def get_info():
f.write("{0}: {1} ".format(box1.get(), box2.get()))
def output_info():
messagebox.showinfo(f.read())
buttonA = Button(root, text="Save info", command=get_info, width=8)
buttonA.grid(row=0, column=2)
buttonB = Button(root, text="Output info", command=output_info(), width=8)
buttonB.grid(row=0, column=5)
root.mainloop()
这就是所有的代码,我需要对它做些什么吗?
解决方案
改变这个
buttonB = Button(root, text="Output info", command=output_info(), width=8)
至
buttonB = Button(root, text="Output info", command=output_info, width=8)
带括号,函数被调用,返回值将被command
设置command
为
推荐阅读
- python - 如何从数据框中的唯一字符串生成唯一的 int
- python - 从另一个 python 脚本循环调用 PyTorch 训练脚本时出现 CUDA 内存不足错误
- wpf-controls - 是否可以更改鼠标悬停事件引发的不是控制轮廓,而是路径?
- python - 哪个是哪个?(真阳性、真阴性、假阳性、假阴性)
- spring-boot - 拦截器和全局异常处理
- r - 仅在一个带有相应图例的多面图上添加第二个 geom_layer
- java - 每个页面加载的所有包都加载 React + Java
- authentication - 如何向 Azure 工业物联网平台验证 NestJS API?
- php - 如何创建 wordpress 详细信息页面?
- ios - 修改拉动以快速刷新