Python Tkinter代码报错:Button参数'text'多值问题求助
问题修复方案
你的代码存在三个关键问题,导致报错及潜在运行异常:
1. Button类引用错误+父组件参数错误
你将tkinter模块命名为Tk,但直接使用Button会找不到该类,正确写法应为Tk.Button;同时创建Button时,第一个参数必须传入Tk窗口实例,而非模块本身。
2. 同时使用两种布局管理器
你既调用了button2.place()又调用了button2.pack(),Tkinter中一个组件只能绑定一种布局方式,二者冲突会引发异常。
3. 窗口方法调用对象错误
wm_title、geometry这类窗口配置方法,需要调用在Tk窗口实例上,而非模块对象上。
修正后的代码:
import tkinter as Tk # 创建窗口实例 root = Tk.Tk() def B(): print(":D") # 正确引用Button类,传入窗口实例作为父组件 button2 = Tk.Button(root, text="hello", command=B) # 仅保留一种布局方式,此处以pack为例,也可替换为place button2.pack() # 通过窗口实例设置标题和尺寸 root.wm_title("button test") root.geometry("320x200") root.mainloop()
报错原因详解:
原代码中button2 = Button(Tk, text="hello", command=B),把模块Tk当成了Button的第一个位置参数master(父组件),但Python解析时会混淆位置参数与关键字参数的对应关系,最终抛出got multiple values for argument 'text'的错误。
内容的提问来源于stack exchange,提问作者user19381648
相关产品推荐
相关产品推荐

