Python 滚动条未拉伸以适合文本小部件

Python 滚动条未拉伸以适合文本小部件,python,tkinter,widget,scrollbar,Python,Tkinter,Widget,Scrollbar,我能够让滚动条与文本小部件一起工作,但由于某些原因,它无法拉伸以适应文本框 有没有人知道有什么方法可以改变滚动条小部件的高度或类似的效果 txt = Text(frame, height=15, width=55) scr = Scrollbar(frame) scr.config(command=txt.yview) txt.config(yscrollcommand=scr.set) txt.pack(side=LEFT) 以下是一个例子: from Tkinter import * ro

我能够让
滚动条
文本
小部件一起工作,但由于某些原因,它无法拉伸以适应文本框

有没有人知道有什么方法可以改变滚动条小部件的高度或类似的效果

txt = Text(frame, height=15, width=55)
scr = Scrollbar(frame)
scr.config(command=txt.yview)
txt.config(yscrollcommand=scr.set)
txt.pack(side=LEFT)
以下是一个例子:

from Tkinter import *
root = Tk()
text = Text(root)
text.grid()
scrl = Scrollbar(root, command=text.yview)
text.config(yscrollcommand=scrl.set)
scrl.grid(row=0, column=1, sticky='ns')
root.mainloop()

这将生成一个文本框,而
sticky='ns'
会使滚动条在窗口上下移动

在您使用的
pack
问题中
pack
有选项告诉它在x轴和y轴上或同时在x轴和y轴上增长或收缩。垂直滚动条通常在y轴上增长/收缩,水平滚动条在x轴上增长/收缩。文本小部件通常应该在两个方向上填充

对于在框架中执行文本小部件和滚动条,您通常会执行以下操作:

scr.pack(side="right", fill="y", expand=False)
text.pack(side="left", fill="both", expand=True)
上面是这样说的:

  • 滚动条位于右侧(
    side=“right”
  • 滚动条应拉伸以填充y轴上的任何额外空间(
    fill=“y”
  • 文本小部件位于左侧(
    side=“left”
  • 文本小部件应拉伸以填充x轴和y轴上的任何额外空间(
    fill=“两者”
  • 文本小部件将展开以占用包含框架中的所有剩余空间(
    expand=True

有关更多信息,请参见带有集成滚动条的文本框的简易解决方案:

Python 3

#Python 3
import tkinter 
import tkinter.scrolledtext

tk = tkinter.Tk() 
text = tkinter.scrolledtext.ScrolledText(tk)
text.pack()
tk.mainloop()
要阅读文本框,请执行以下操作:

string = text.get("1.0","end")   # reads from the beginning to the end
当然,如果您愿意,您可以缩短导入时间


Python 2中,您将导入ScrolledText。

您的示例忽略了为行或列设置权重,因此它可能无法正确调整大小。在Python 2中,这是:
从ScrolledText导入ScrolledText
文本=ScrolledTex(tk)