Python Tkinter绑定StringVar到Entry时触发TclError报错
问题排查与解决
报错原因
报错信息_tkinter.TclError: unknown option "-stringvarialbe"的核心原因是参数名拼写错误:
Tkinter的Entry组件绑定StringVar的正确参数是textvariable,你在创建第二个Entry时误写为stringvarialbe(不仅开头错误,还多了一个字母a)。
修正后的代码片段
仅需修正参数名拼写即可解决问题,完整修正后的代码如下:
import tkinter as tk root = tk.Tk() root.geometry("240x100") root.title('Login') root.resizable(0, 0) psw = tk.StringVar(root) psw2 = tk.StringVar(root) root.columnconfigure(0, weight=1) root.columnconfigure(1, weight=3) username_label = tk.Label(root, text="contraseña:") username_label.grid(column=0, row=0, sticky=tk.W, padx=5, pady=5) username_entry = tk.Entry(root, textvariable=psw) username_entry.grid(column=1, row=0, sticky=tk.E, padx=5, pady=5) username_label = tk.Label(root, text="Repita la contraseña:") username_label.grid(column=0, row=1, sticky=tk.W, padx=5, pady=5) # 修正参数名拼写错误 username_entry = tk.Entry(root, textvariable=psw2) username_entry.grid(column=1, row=1, sticky=tk.E, padx=5, pady=5) login_button = tk.Button(root, text="Register") login_button.grid(column=1, row=3, sticky=tk.E, padx=5, pady=5) root.mainloop()
补充说明
你创建第一个Entry组件时使用的textvariable=psw是正确写法,仅需修正第二个Entry的参数名拼写,程序即可正常运行。
内容的提问来源于stack exchange,提问作者ShadowSPM
相关产品推荐
相关产品推荐

