Tkinter具有三个
几何管理器
:包装,网格和位置。
通常建议将包装和网格放在适当的位置。
您可以使用 网格管理器的 行 和 列 选项
将 滚动条放置 在“ 文本” 小部件旁边。
将“ 滚动条” 小部件的 命令 选项设置为“文本”的 yview 方法。
scrollb = tkinter.Scrollbar(..., command=txt.yview)
将“ 文本” 小部件的 yscrollcommand 选项设置为Scrollbar的 set 方法。
txt['yscrollcommand'] = scrollb.set
这是一个使用ttk的工作示例:
import tkinterimport tkinter.ttk as ttkclass TextScrollCombo(ttk.frame): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # ensure a consistent GUI size self.grid_propagate(False) # implement stretchability self.grid_rowconfigure(0, weight=1) self.grid_columnconfigure(0, weight=1) # create a Text widget self.txt = tkinter.Text(self) self.txt.grid(row=0, column=0, sticky="nsew", padx=2, pady=2) # create a Scrollbar and associate it with txt scrollb = ttk.Scrollbar(self, command=self.txt.yview) scrollb.grid(row=0, column=1, sticky='nsew') self.txt['yscrollcommand'] = scrollb.setmain_window = tkinter.Tk()combo = TextScrollCombo(main_window)combo.pack(fill="both", expand=True)combo.config(width=600, height=600)combo.txt.config(font=("consolas", 12), undo=True, wrap='word')combo.txt.config(borderwidth=3, relief="sunken")style = ttk.Style()style.theme_use('clam')main_window.mainloop()这将解决您的部分 滚动条 是小的
sticky='nsew',
你可以阅读→这里。
现在,对您有所帮助的事情是,不同的 Tkinter 小部件可以在同一程序中使用不同的 几何管理器 ,只要它们不共享同一父级即可 。
所述
tkinter.scrolledtext
模块包含一个称为类 ScrolledText 其是化合物插件(文本和滚动条)。
import tkinterimport tkinter.scrolledtext as scrolledtextmain_window = tkinter.Tk()txt = scrolledtext.ScrolledText(main_window, undo=True)txt['font'] = ('consolas', '12')txt.pack(expand=True, fill='both')main_window.mainloop()这是方法实现是值得考虑看看。



