Python tkinter中如何获取并打印Text组件的用户输入内容
Text组件全量内容获取的修正方法
报错根源
Entry为单行输入控件,.get()方法无参即可直接取全量内容;Text为多行输入控件,它的.get()必须传入两个区间索引参数,明确指定要获取的内容起止范围,无参调用就会抛出缺少索引参数的错误。
正确取值规则
获取Text组件全部输入的固定参数组合:
- 起始位置:
1.0代表文本区域第一行第一个字符的坐标 - 结束位置:
tk.END代表文本区域最后一个字符的后方位置
代码修改
将原函数中引发报错的自定义内容打印行:
# 错误写法:直接无参调用Text的get方法 print("自定义内容:", anythingbox.get())
替换为:
# 正确写法:传入起止索引参数 print("自定义内容:", anythingbox.get("1.0", tk.END))
优化提示
上述方法取到的内容末尾会附带自动生成的换行符,若要避免打印时多出多余空行,可在取值后拼接.strip()裁剪首尾空白字符:
anythingbox.get("1.0", tk.END).strip()
修正后的完整打印函数
def printAlldetails(): print("与", namebox.get(), "相关的详情如下:") print("姓名:", namebox.get()) print("年龄:", agebox.get()) print("血型:", bloodtypebox.get()) print("体重:", weightbox.get()) print("身高:", heightbox.get()) print("自定义内容:", anythingbox.get("1.0", tk.END).strip())
内容的提问来源于stack exchange,提问作者AAA
相关产品推荐
相关产品推荐

