2013-07-22 3 views
0

Есть ли способ в tcl/Tk сделать окно стыковочным, чтобы оно могло быть само собой или встроено в виде виджета в другое окно?Как сделать прикрепляемое окно в tcl/tk?

Я использую Tcl 8.4, и обновление не является вариантом.

+0

модернизирует Windows XP не вариант? Вы должны обновить программное обеспечение после достижения EOL. –

+0

@JohannesKuhn, это не мой звонок. – SIMEL

+0

Ну, я просто пытаюсь дать некоторые причины, почему они должны это делать, чтобы вы могли их убедить. –

ответ

1

Вы можете только начинать с Tk 8.5, который ввел в команду wm manage и wm forget команду wm.

См. TIP #125 или недавнюю справочную страницу Tk для деталей.

Tcl 8.4 достигло конца жизни после 11 лет, последний выпуск был 8.4.20, больше не будет обновлений этой линии.

Простой пример для wm manage и wm forget:

package require Tk 8.5 

proc undock {b widget} { 
    wm manage $widget 
    $b configure -command [list dock $widget] -text "Dock" 
} 

proc dock {b widget} { 
    wm forget $widget 
    grid $widget -sticky news 
    $b configure -command [list undock $widget] -text "Undock"  
} 

frame .docked 
button .docked.undock -command { undock .docked.undock .docked } -text "Undock" 
grid .docked -sticky news 
grid .docked.undock -sticky news 
+0

Как бы вы реализовали это в Tk 8.5? – SIMEL

+0

Ну, технически вы можете даже делать стыковочные окна в 8.4, но только путем обмана. Вы должны полностью воссоздать иерархию окон внутри нового верхнего уровня, который является склонным к ошибкам, медленным и полностью не приятным. – schlenk

+1

В демонстраторе виджетов Tk 8.5 есть пример открепляемой панели инструментов (который должен быть распространен с любым дистрибутивом Tk, но я немного туман, если это действительно сделано в Linux, я знаю, что это часть официального дистрибутива Tk и также ActiveTcl). Я написал эту демонстрацию, чтобы показать что-то вроде этого. –

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