[Tcl/Tk] Показательный пример использования Tk для создания GUI
Думаю, что опыт использования Tk для создания GUI интересует не только меня, поэтому решил выложить часть только что закончившейся переписки с Игорем Новиковым (sk1project.org), естественно с его разрешения. Смысл опубликования в том чтобы выбирающие GUI библиотеку имели больше полезной информации.
Письмо 1
Сейчас выбираю на чём делать графический интерфейс для программ на Common Lisp. И в поисках плюсов и минусов GTK и Tk нашёл Ваше высказывание: Skencil 1.0alpha: "...иногда они возвращаются..." (комментарий)
Насколько я понял из Вашего опыта следует, что для сложных программ писать GUI на Tk проблематично. Верно? Дело в том что sK1 действительно хорошо выглядит и потому пример показательный для выбирающих, можно ли уточнить по пунктам в чём минусы Tk (учитывая состояние дел в Common Lisp чтобы я ни выбрал мне всё равно придётся доводить до ума имеющиеся привязки к графическим библиотекам)? Заранее благодарен за ответ.
Ответ на письмо 1
Tk умирающая платформа. Попытка вдохнуть в нее жизнь в версии 8.5 провалилась. Темезация так и осталась недоделанной. У sK1 тема на битмапах, т.е. все вручную отрисовано, поскольку интеграция с Gtk|Qt у обычного Tk невозможна из-за особенностей движка темезации. Чтобы это стало возможным, нужно вкомпилировать тему при компиляции пакетов Tk, т.е. это походит только для экспериментов но не для широкого круга пользователей. Да и код у нативных тем (автор Georgios Petasis) скажем мягко, не очень. Также абсолютно отсутствует интеграция с десктопным окружением.
sK1 изначально основан на коде Skencil, в котором Tk прибит гвоздями в MVC паттерне. Год назад окончательно достали Tk-шные проблемы и было принято решение о полной «перезагрузке» проекта. Последней каплей был «отвал» всех не latin-1 локалей в Tk под Ubuntu из-за того, что в Ubuntu локаль «UTF8» заменили на «utf8». Skencil мы переписываем на Gtk, а sK1 на Qt. На самом деле это полное переписывание - проект дошел «до руки», когда тащить старые костыли уже просто невозможно. Ну и Skencil/sK1 - это будут две разные «морды» одного и того же приложения на разных тулкитах.
Продолжение в письме 2.