2016-10-25 5 views
0

Когда я нажимаю на свой .tbutton4, я бы хотел, чтобы я изменил текст на «Разблокировать», чтобы .tbutton3 не двигался. Ниже мой код:ttk :: button keep width [TCL/TK]

ttk::frame .toolbar 

ttk::button .tbutton3 -text "Exit" -style "Toolbutton" -command {} 
ttk::button .tbutton4 -text "Lock" -style "Toolbutton" -command { 
if {[.tbutton4 cget -text] eq "Lock"} { 
.tbutton4 config -text "Unlock" 
} else { 
.tbutton4 config -text "Lock" 
} 
} 

grid .toolbar -row 0 -column 0 -sticky news 

grid .tbutton4 -in .toolbar -row 0 -column 0 -padx 2 -pady 2 -sticky w 
grid .tbutton3 -in .toolbar -row 0 -column 1 -padx 2 -pady 2 -sticky w 

Спасибо за вашу помощь

ответ

0

можно зафиксировать ширину, установив -width вариант кнопки виджета.

ttk::frame .toolbar 

ttk::button .tbutton3 -text "Exit" -style "Toolbutton" -command {} 
ttk::button .tbutton4 -text "Lock" -style "Toolbutton" -width 7 -command { 
    if {[.tbutton4 cget -text] eq "Lock"} { 
     .tbutton4 config -text "Unlock" 
    } else { 
     .tbutton4 config -text "Lock" 
    } 
} 

grid .toolbar -sticky news 

grid .tbutton4 .tbutton3 -in .toolbar -padx 2 -pady 2 -sticky w 

Это выглядит достаточно хорошо для меня, возможно, потребуется еще некоторые настройки в зависимости от темы и т.д. Использование магическое число для ширины немного сомнительный: после того, как оптимальная ширина была установлена, можно было бы, возможно, связаны, что длина строки самого длинного текста; например expr {[string length Unlock] + 1}.

Документация: eq (operator), grid, if, ttk::button (widget), ttk::frame (widget)

+0

Оооо! ** - ширина ** и этот я забыл! спасибо Петру – Mkn

 Смежные вопросы

  • Нет связанных вопросов^_^