6

我能够Scrollbar使用Text小部件,但由于某种原因它没有拉伸以适应文本框。

有谁知道改变滚动条小部件的高度或达到这种效果的任何方法?

txt = Text(frame, height=15, width=55)
scr = Scrollbar(frame)
scr.config(command=txt.yview)
txt.config(yscrollcommand=scr.set)
txt.pack(side=LEFT)
4

3 回答 3

8

在您的问题中,您正在使用pack. pack可以选择告诉它在 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="both")中的任何额外空间
  • 文本小部件将展开以占用包含框架 ( expand=True)中的所有剩余空间

有关更多信息,请参阅http://effbot.org/tkinterbook/pack.htm

于 2013-05-16T02:09:49.367 回答
5

这是一个例子:

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'并使滚动条在窗口上下移动

于 2013-05-16T01:50:21.983 回答
4

使用带有集成滚动条的文本框的简单解决方案:

蟒蛇 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中,您import ScrolledText改为。

于 2014-10-24T12:24:44.503 回答