Набор виджета Ttk впервые появился в Tk 8.5; с тех пор появился виджет для ноутбука. Тем не менее, были основаны виджеты TTK (! очень близко основа) на пакете расширения виджета называется Tile, о котором автор said:
Плитка будет поддерживаться как 8,4-совместимое расширение до тех пор, пока Tcl/Tk 8.4 остается жизнеспособной платформой. Это займет некоторое время, прежде чем каждый сможет обновить до 8.5.
Я не 100% уверен, что если вы можете использовать плитки для того, что вы делаете, но это получил быть стоит попробовать!
Если это не сработает, вы можете подумать о том, чтобы разделить вашу программу на два процесса, которые общаются по трубе. Это работает очень хорошо; Обработка Tcl труб очень хороша. Это позволило бы использовать 8.5 или 8.6 для графического интерфейса пользователя и 8.4 для старого расширения.
Если этот код 8.4 используется для создания виджета, а вы используете Unix/X11, вы можете даже embed виджет 8.4 в кадре с графическим интерфейсом 8.5/8.6. Ключ в том, что рамка, которую вы установили -container true
, и то, что вы установили -use $id
, могут быть в разных процессах; просто создайте рамку контейнера, получите его идентификатор с winfo id
и отправьте это другому процессу при его создании, чтобы он мог создать топлел, который использует этот фрейм в качестве своего контейнера. (С помощью параметра командной строки работает особенно хорошо, как позволяет контролировать параметры к .
верхнего уровня.)
set f [frame .foo -container true]
set id [winfo id $f]
set pipeline [open |[list wish8.4 your84script.tcl -use $id] "r+"]
(Это как плагин для браузера Tcl/Tk работал.)
Такой большой ответ. Заслуживает нескольких голосов! – TrojanName