-Поиск по дневнику

Поиск сообщений в rss_rss_hh_new

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 17.03.2011
Записей:
Комментариев:
Написано: 51


Visual Tcl. Разработка графического пользовательского интерфейса для утилит командной строки (Продолжение)

Среда, 19 Июля 2017 г. 20:26 + в цитатник
В предыдущей статье в качестве инструментария для создания графического интерфейса для утилит командной строки на базе Tcl/Tk был рассмотрен конструктор tkBuilder. Конструктор хорош, но как было отмечено в статье обладает и рядом недостатков, главный из которых нет поддержки UTF-8, а следовательно, и русского алфивита. Еще один недостаток был отмечен пользователем merlin-vrn. Это поддержка на сегодняшний день только Tcl/Tk версии 8.4.

Но вот в комментарии от пользователя svk28 был упомянут конструктор Visual Tcl на базе Tck/Tk:
image

После предварительного ознакомления было решено использовать его в деле, тем более что предыдущий материал фактически остался незавершенным, если смотреть на него с точки зрения объявленной цели – дать графическую оболочку утилитам командной строки с помощью которых можно получить доступ к облачному криптографическому токену PKCS#11. Поэтому настала пора разработать графический интерфейс и для второй утилиты, а именно ls11cloud_config:
bash-4.3$ /usr/local/bin64/ls11cloud_config
LS11CLOUD User Utility 
usage:  /usr/local/bin64/ls11cloud_config  [-p ] [-n ]    
Commands:
   register    - register new user on the server 
        duplicate    - duplicate user account on other computer 
        change_pswd - change SESPAKE authentication password 
        status      - display current configuration data 
        log         - display server log file 
        recreate    - re-create token to initial empty state 
        unregister  - remove all user files from the server 
NB: Don't use non-latin letters to avoid encoding problems! 
Copyright(C) Ltd (http://soft.lissi.ru) 2017 
bash-4.3$

Первым делом было проверено какую версию Tcl/Tk поддерживает Visual Tcl. Оказалось, что версия 8.6, которая установлена на моем компьютере, поддерживается конструктором Visual Tcl:

bash-4.3$ cd ../vtcl.vtcl-8.6-master
bash-4.3$ ./configure 
Using /bin/wish8.6
bash-4.3$

Первый запуск конструктора не вдохновил, уж больно много окон появилось на рабочем столе:

image

Но осмотревшись оказалось что пару окон (новостную ленту – Visual Tcl News и знаете ли вы это – Did you know)можно закрывать без всякого ущерба для работы. И оказывается, что окон уже и не так много и при необходимости их можно периодически скрывать.
Приятной неожиданностью стало наличие своего мольберта для для каждой виджеты класса toplevel:

image

В нашем проекте потребовалось три виджеты класса toplevel и соответственно в нашем распоряжении было три мольберта:

1. Виджета GUICloudConfig, основное окно с функциями утилиты ls11cloudconfig (см. выше);
2. Виджета Password, которая так или иначе задействована во всех функциях:

image

3. Виджета CloudToken, которая задействуется в функциях Регистрации и Дублирования облачного криптографического токена:

image

И никаких проблем с «великим, могучим, правдивым и свободным русским языком!» (И.С. Тургенев).
Отметим одну особенность дизайнера Visual Tcl. Она связана с редактированием функций. Изменения, вносимые в функции, не попадут в проект до тех пор, пока не будет закрыто окно, в котором редактируется функция:

image

Отметим также, что проект в понимании Visual Tcl сохраняется как файл Tcl/Tk (*.tcl) и его в любой момент можно выполнять самостоятельно без дополнительных преобразований. Обратное не верно, далеко не каждый файл Tcl/Tk конструктор будет рассматривать как свой проект.
На еще одну очень полезную вещь навел проект Visual Tcl – возможность сохранения проекта в бинарном коде. Для этой цели задействуется утилита freewrap , которая превращает скрипты Tcl / Tk в однофайловые исполняемые программы. Так и мы оба скрипта, реализующих графический интерфейс для утилит p11conf и ls11cloudconfig преобразовали в исполняемые программы:

bash-4.3$ ls 
GUITKP11Conf.tcl  LS11CLOUD_CONFIG.tcl 
bash-4.3$
bash-4.3$ freewrap GUITKP11Conf.tcl
bash-4.3$ freewrap LS11CLOUD_CONFIG.tcl
bash-4.3$ ls 
GUITKP11Conf      LS11CLOUD_CONFIG      
GUITKP11Conf.tcl  LS11CLOUD_CONFIG.tcl 
bash-4.3$


Теперь нам осталось только все (проекты, tcl-скрипты и исполняемые программы) упаковать и выложить для свободного использования. Скачать архив можно здесь.

Большое спасибо пользователю svk28 за его подсказку!
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/333742/

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку