感谢您的关注! 这是我的问题:我有一个有退出选项的菜单栏。单击时,将弹出一个窗口,提示用户输入管理员访问密码,然后再允许他们退出主应用程序 我一遍又一遍地改变了我的代码但仍然遇到了同样的问题 这是我现在的代码
def exitmenu():
def exitmenucheck():
if passwordentry.get() == actualpassword:
quit
else:
popupmsg("error")
exitmenu= tk.Tk()
exitmenu.wm_title("Administrator Access")
label = ttk.Label(exitmenu, text="Enter Password.", font=NORM_FONT)
label.grid(row=0,column=0)
password = tk.StringVar()
passwordentry = tk.Entry(exitmenu, textvariable=password, show='*')
passwordentry.grid(row=0,column=1)
button = ttk.Button(exitmenu, text="Exit", command=exitmenucheck, width=8)
button.bind('<Enter>',exitmenucheck)
button.grid(row=2,column=1,sticky="s")
这是我输入正确或错误密码时出现的错误
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1562, in __call__
return self.func(*args)
TypeError: exitmenucheck() takes 0 positional arguments but 1 was given
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1562, in __call__
return self.func(*args)
TypeError: exitmenucheck() takes 0 positional arguments but 1 was given
抱歉,我2天前才启动python编程,所以这看起来像是一个非常简单的任务,不可能搞砸。 感谢您提前耐心和指导:)
答案 0 :(得分:1)
这应该actualpassword
为字符串'actualpassword'
,因此通过向其添加parenthesis
来更改该部分。
def exitmenucheck():
if passwordentry.get() == 'actualpassword':
quit
else:
popupmsg("error")
从您的代码中查看此示例
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
def exitmenu():
pass
def exitmenucheck(event=None):
if passwordentry.get() == "actualpassword":
exitmenu.destroy()
else:
messagebox.showwarning("error", "password incorrect")
# popupmsg("error")
print("error")
exitmenu= tk.Tk()
exitmenu.wm_title("Administrator Access")
label = ttk.Label(exitmenu, text="Enter Password.")
label.grid(row=0,column=0)
password = tk.StringVar()
passwordentry = tk.Entry(exitmenu, textvariable=password, show='*')
passwordentry.bind("<Return>", exitmenucheck)
passwordentry.grid(row=0,column=1)
button = ttk.Button(exitmenu, text="Exit", command=exitmenucheck, width=8)
# button.bind('<Enter>',exitmenucheck)
button.grid(row=2,column=1,sticky="s")
exitmenu.mainloop()
你应该bind
你的entry
小部件而不是button
小部件,你应该绑定keyboard enter key
而不是Return