Tkinter中Button控件的command属性异常、报语法错误如何解决?
问题修复方案
直接报错原因
你遇到的SyntaxError是因为实例化Button时,text参数和command参数之间缺少逗号分隔,Python解析器无法识别连续的参数写法,因此抛出无效语法错误。
其他需要修正的问题
command参数绑定回调函数时,不要加括号():写click()会在按钮定义阶段直接执行函数,而非点击按钮时触发,正确写法是传递函数本身click。- 不要直接将
grid()方法的返回值赋值给按钮变量:grid()返回值为None,赋值后你定义的button变量会变为空值,后续无法操作该按钮,建议将实例化和布局操作拆分。 - 回调函数的打印语句缺少f-string前缀:你使用的大括号变量占位符是Python 3.6+支持的f-string语法,需要在字符串前加
f才会正常解析变量,否则会直接输出大括号和变量名。 - (可选优化)按钮文本
Sumbit为拼写错误,正确拼写为Submit。
修正后的代码
按钮创建部分
# 先实例化按钮,传递无括号的回调函数 button = Button(main_window, text="Submit", command=click) # 单独调用布局方法 button.grid(row=3, column=1)
回调函数部分
def click(): # 字符串前加f启用f-string解析 print(f"The entered name is {edit_txt1} and the entered age is {edit_txt2}.")
注意:请确保
edit_txt1和edit_txt2变量在click函数的作用域内可访问,否则会触发NameError。
内容的提问来源于stack exchange,提问作者Aayush Shukla
相关产品推荐
相关产品推荐

