2016-07-01 2 views
0

Какова актуальность -sticky в случае меню?Какова актуальность -sticky в случае меню

Видел так много примеров в Интернете, которые используют -sticky «новости» с меню кадров, как показано ниже:

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 

Я не вижу никакой разницы при изменении размера основной окно.

ответ

1

Значение -sticky, вероятно, устанавливается в это значение, поскольку автор всегда использует это значение. Для меню это, вероятно, не очень хороший выбор, поскольку места, где вы нажимаете, чтобы выпустить меню, обычно не должны расширяться на какой-либо общей платформе рабочего стола. Гораздо лучше установить меню в качестве меню для верхнего уровня, используя опцию -menu toplevel, тем более что это более портативно.

Вот пример того, как сделать очень простой 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 } 

Это пропавшие вещи, как подчеркивает, ускорителей, реализации команд и т.д.

+0

Можно ли также добавить цвет фона к командам меню. В настоящее время главное меню отображается в другом (но предпочтительном) цвете, чем в командах меню Open/Save/Quit – BabyGroot

1

Вы не видите никакой разницы, потому что виджет не сказал, чтобы расти. Попробуйте это с/без опции -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 columnconfigure и grid rowconfigure используются для установки скорости роста столбцов/строк в сетке: по мере роста клетки, виджеты висят на краях они сказали придерживаться.