Tkinter ScrolledText仅显示摘要文本不显示数字键的修改方法
Tkinter滚动文本框隐藏摘要序号实现方案
问题背景
使用Python Tkinter开发文本摘要功能时,名为tab1_display的ScrolledText组件会额外展示摘要对应的数字序号,预期效果为组件内仅显示纯摘要文本,不展示序号。
原有存在问题的代码:
summary() # 调用摘要生成函数 # print(sentenceSummary) print('\n') final_text = sorted(sentenceSummary.items()) for x in final_text: print(x[1]) tab1_display.insert(tk.END, final_text)
已知逻辑说明:
sentenceSummary是存储摘要结果的字典,键为int类型的句子序号,值为string类型的单条摘要文本- 已通过
sorted(sentenceSummary.items())完成字典项按键(即句子序号)排序 - 现有for循环可在控制台逐行打印排序后的纯摘要文本,但未将这部分纯文本传入UI组件
错误原因
原有代码直接把sorted()返回的「(序号, 摘要文本)」元组列表整体传入insert()方法,Tkinter会把列表内包含的数字序号、文本内容全部渲染到组件中,因此出现多余的数字。
修改代码
核心逻辑:遍历排序后的元组列表,仅提取每个条目中的摘要文本部分,拼接为完整的纯字符串后再传入组件。修改后可直接运行的代码如下:
summary() # 调用摘要生成函数 # 按句子序号排序所有摘要条目 sorted_summary = sorted(sentenceSummary.items()) # 提取所有纯摘要文本,单条摘要之间用换行分隔 display_content = "\n".join([entry[1] for entry in sorted_summary]) # 将纯文本内容插入滚动文本框 tab1_display.insert(tk.END, display_content)
- 自定义格式提示:如果需要不同摘要段落之间空一行展示,把
join()参数里的"\n"替换为"\n\n"即可。
内容的提问来源于stack exchange,提问作者Lavanya Pushpakar
相关产品推荐
相关产品推荐

