在菜单栏的情况下 -sticky 的相关性是什么

What is the relevance of -sticky in case of a menubar

对于菜单栏,-sticky 的相关性是什么?

在网上看到很多使用 -sticky "news" 和菜单框架的例子如下:

frame .t.frmMnu -bd 2 -relief raised
grid config .t.frmMnu -column 0 -row 0 -columnspan 1 -rowspan 1 -sticky "news"

而不是

grid config .t.frmMnu -column 0 -row 0 -columnspan 1 -rowspan 1

调整主要尺寸时我没有看到任何差异 window。

您没有看到任何差异,因为小部件没有被告知增长。尝试使用/不使用 -sticky 选项:

toplevel .t
frame .t.frmMnu -bd 2 -relief raised -width 20 -height 10
grid .t.frmMnu -sticky news
grid columnconfigure .t .t.frmMnu -weight 1

grid columnconfiguregrid rowconfigure 用于设置网格中列/行的增长率:随着单元格的增长,小部件会挂在它们被告知要坚持的边缘.

-sticky 值可能被设置为该值,因为作者总是使用该值。对于菜单栏,这可能不是一个好的选择,因为在任何常见的桌面平台上,您单击以弹出菜单的地方通常不会变宽。使用顶层的 -menu 选项将菜单安装为顶层的菜单栏要好得多,尤其是因为它更便携。

下面是一个如何制作非常简单的 File 菜单的示例:

toplevel .t
.t configure -menu [menu .t.menubar]
.t.menubar add cascade -label "File" -menu [menu .t.menubar.file]
.t.menubar.file add command -label "Open" -command { doTheOpen }
.t.menubar.file add command -label "Save" -command { doTheSave }
.t.menubar.file add separator
.t.menubar.file add command -label "Quit" -command { doTheQuit }

它缺少下划线、加速器、命令的实现等内容