限制滚动条长度

时间:2014-01-24 09:28:30

标签: perl tkinter tcl tk perltk

我正在尝试使用Perl Tk创建一个简单的记事本,如GUI。我使用滚动小部件创建了一个带有两个滚动条的文本小部件 - 一个在右边,一个在底部。两个滚动条相遇的地方看起来像这样:

enter image description here

但是我想让它看起来像微软在“记事本”应用程序中看到的那样。这就是我想要的:

enter image description here

正如你所看到的,现在有一个“空方块”,两个滚动条相遇。记事本的另一个功能是这个“方形”可用于调整窗口大小。我希望能够实现同样的目标。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:5)

诀窍是将小部件放置在grid几何管理器中,这实际上创建了一个(不均匀大小的)4x4网格,其中文本小部件位于“西北”,垂直滚动条位于“东北” “,”西南“的水平滚动条和”东南“的空白广场。 man page上有一个相关的例子。

我认为我可以引用手册页示例作为合理使用(注意它是版权所有©1995-1997 Roger E. Critchlow Jr.版权所有©1996 Sun Microsystems,Inc。)。

# Make the widgets
toplevel .t
text .t.txt -wrap none -xscroll {.t.h set} -yscroll {.t.v set}
scrollbar .t.v -orient vertical   -command {.t.txt yview}
scrollbar .t.h -orient horizontal -command {.t.txt xview}

# Lay them out
grid .t.txt .t.v -sticky nsew
grid .t.h        -sticky nsew

# Tell the text widget to take all the extra room
grid rowconfigure    .t .t.txt -weight 1
grid columnconfigure .t .t.txt -weight 1

然而,您将自己翻译为Perl-Tk。在TkDocs上有一些与Perl-Tk相关的网格讨论(虽然没有特别关于滚动条)here可能会让你开始。 “学习Perl / Tk”示例章节Geometry Management还讨论了grid

哦!你也希望在第四个方格中调整大小。在Tcl / T(t)k中,它被称为ttk::sizegrip并且记录为here。我自己从未使用它(因为还有其他方法来调整窗口大小)并且不知道它是否在Perl-Tk中。如果不是,有wiki page讨论如何伪造它(再次,我自己从未尝试过这些代码)。