perl - 限制滚动条长度

标签 perl tkinter tcl tk perltk

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

enter image description here

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

enter image description here

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

我该怎么做?

谢谢!

最佳答案

诀窍是使用 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。有一些与 Perl-Tk 相关的关于网格的讨论(虽然不是专门关于滚动条)here在 TkDocs 可能会让你开始。 “学习 Perl/Tk”示例章节 Geometry Management还讨论了 grid .

哦!您还需要在第四个方块中调整大小控件。在 Tcl/T(t)k 中,它被称为 ttk::sizegrip并记录在案 here .我自己从未使用过它(因为还有其他方法可以调整窗口大小),也不知道它是否在 Perl-Tk 中。如果不是,则有 wiki page讨论如何伪造它(同样,我自己从未尝试过该代码)。

关于perl - 限制滚动条长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328952/

相关文章:

regex - 如何强制复赛?

linux - Perl 设备::串口

python - [Python/Tkinter]如何获取在函数 "event_generate"中设置的数据值

testing - 我们如何获得 DejaGnu 中各个测试用例的时间

http - 是否有合适的钩子(Hook)来拦截所有到 OpenACS/AOLServer 系统的 POST?

tcl - 使用别名时获取调用行号

regex - 如何从 Perl 正则表达式生成所有可能的排列?

python - Linux 中不同类型的脚本

python - 获取 tkinter 对话框以通知用户他们的输入无效

python - 为什么 Photoimage put() 很慢?