点击上方“只会写BUG的程序猿”,选择“设为星标”
import tkinter as tk# 创建主窗口root = tk.Tk()root.title("我的第一个文本编辑器")root.geometry("600x400") # 设置窗口大小# 创建Text组件text_area = tk.Text(root, # 父容器wrap="word", # 换行方式:按单词换行(避免单词被截断)font=("微软雅黑", 12), # 字体和字号bg="#f8f9fa", # 背景色fg="#333333", # 文字颜色padx=10, # 水平内边距pady=10 # 垂直内边距)# 将Text组件填充整个窗口text_area.pack(expand=True, fill="both")# 运行主循环root.mainloop()
运行这段代码,你会看到一个 600x400 的窗口,里面有一个可自由输入多行文字的区域,输入内容超过一行时会自动换行,体验比 Entry 组件提升太多!

为了让你更灵活地定制 Text 组件,整理了日常开发最常用的核心参数,直接对照使用即可:
wrap | word(按单词)/ | |
font | ("微软雅黑", 12)/ | |
state | normal(可编辑)/ | |
undo | True/ | |
maxundo |
💡 实用技巧:开发代码编辑器时,推荐使用等宽字体(如 Consolas、Monaco),让代码对齐更美观;开启undo=True可以让用户使用 Ctrl+Z 撤销操作,大幅提升操作体验。
import tkinter as tkroot = tk.Tk()root.title("滚动条基础示例")root.geometry("200x300")# 创建垂直滚动条scrollbar = tk.Scrollbar(root,orient="vertical", # 滚动条方向:垂直(horizontal为水平)width=15 # 滚动条宽度,单位为像素)scrollbar.pack(side="right", fill="y") # 靠右放置,垂直填充# 创建列表框(用于演示滚动效果)listbox = tk.Listbox(root, yscrollcommand=scrollbar.set)# 向列表框添加100条测试数据,制造滚动场景for i in range(100):listbox.insert("end", f"这是第{i+1}个只会写BUG的程序猿")listbox.pack(side="left", fill="both", expand=True)# 关联滚动条和列表框,核心配置scrollbar.config(command=listbox.yview)root.mainloop()

可滚动组件(如 Listbox/Text)的yscrollcommand绑定到滚动条的set方法(告诉滚动条当前内容位置)
滚动条的command绑定到可滚动组件的yview方法(滚动条拖动时,控制组件内容滚动)
整理滚动条常用参数,按需配置,轻松打造符合界面风格的滚动条:
orient | verticalhorizontal(水平) | |
width | ||
command | yview/xview方法 | |
bg | ||
activebackground |
import tkinter as tkroot = tk.Tk()root.title("带滚动条的文本编辑区域")root.geometry("800x600") # 适配电脑端常用窗口大小# 1. 创建垂直滚动条(必备,处理长文本)v_scrollbar = tk.Scrollbar(root, orient="vertical", width=12)v_scrollbar.pack(side="right", fill="y") # 靠右,垂直填充# 2. 创建水平滚动条(可选,处理超长行,如代码)h_scrollbar = tk.Scrollbar(root, orient="horizontal", width=12)h_scrollbar.pack(side="bottom", fill="x") # 靠下,水平填充# 3. 创建Text组件并绑定滚动条text_editor = tk.Text(root,wrap="none", # 关闭自动换行,测试水平滚动条(代码编辑推荐)font=("Consolas", 12), # 等宽字体,适配代码/普通文本undo=True, # 开启撤销功能,提升体验bg="#ffffff", # 白色背景,护眼fg="#333333",padx=10,pady=10,yscrollcommand=v_scrollbar.set, # 绑定垂直滚动条xscrollcommand=h_scrollbar.set # 绑定水平滚动条)text_editor.pack(expand=True, fill="both") # 填充整个窗口# 4. 配置滚动条控制Text组件,双向绑定关键步骤v_scrollbar.config(command=text_editor.yview)h_scrollbar.config(command=text_editor.xview)# 5. 插入测试文本(长文本+超长行,测试滚动效果)test_text = """欢迎使用Tkinter带滚动条的文本编辑区域!这是一个同时支持垂直和水平滚动的文本区域,适配普通文本和代码编辑场景。以下是一行超长文本,用于测试水平滚动条效果:"""# 生成超长行,模拟代码超长语句/无换行文本long_line = "".join([f"第{i}个只会写BUG的程序猿__" for i in range(50)])text_editor.insert("end", test_text + long_line)root.mainloop()

第一步:Text 告诉 Scrollbar 自己的位置
yscrollcommand=v_scrollbar.set # 垂直方向位置同步xscrollcommand=h_scrollbar.set # 水平方向位置同步
第二步:Scrollbar 控制 Text 的视图
v_scrollbar.config(command=text_editor.yview) # 垂直滚动控制h_scrollbar.config(command=text_editor.xview) # 水平滚动控制
⚠️ 新手高频踩坑点:很多同学会忘记第二步配置,导致滚动条能显示但无法拖动,或者拖动后文本区域不跟随滚动。一定要确保双向绑定都配置完成!
wrap="word",仅需配置垂直滚动条即可,界面更简洁;wrap="none",同时配置垂直 + 水平滚动条,避免代码自动换行影响阅读和调试;text_editor.config(wrap="word")在代码中动态修改换行方式,适配不同场景。set和yview/xview实现与可滚动组件的绑定;wrap="word",代码编辑用wrap="none"。