Как я могу улучшить внешний вид графического интерфейса Perl / TK под Perl 5.004? - PullRequest
8 голосов
/ 04 марта 2009

У меня есть приложение, созданное для работы в Windows, Linux и Solaris, которое использует Perl/TK GUI. Из-за ограничений мы ограничены только Perl / TK . Более того, мы ограничены старой Perl/Tk версией 5.00404.

Я бы хотел поработать с этими ограничениями, чтобы графический интерфейс выглядел максимально красиво и современно.

Существуют ли какие-либо веб-ресурсы со схемами дизайна ТЗ (для кнопок, рамок, цветов и т. Д.), Которые могли бы помочь мне в этом начинании?


Я также ищу советы по модернизации, такие как тот, который я нашел здесь :

Если вы обнаружите, что ваши приложения Tk выглядят немного некрасиво в системах на основе X, попробуйте добавить следующие строки в начало вашего скрипта:

$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*");
$mw->optionAdd("*borderWidth", 1);

Ответы [ 5 ]

5 голосов
/ 23 мая 2009

Попробуйте использовать изображения вместо элементов кнопок, тогда вы можете выбрать любой стиль и шрифты, которые можно запекать. Это будет работать практически для любого элемента, содержимое которого не является динамическим, включая фоны на панелях и т.п. Конечно, это больше работы, но она решает вашу проблему, особенно если в вашей проектной группе есть компетентный художник.

5 голосов
/ 04 марта 2009

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

2 голосов
/ 11 марта 2009

Использование optionAdd для настройки значений по умолчанию через базу данных параметров разумное начало. Нить об этом можно найти по адресу:

http://tcl.projectforum.com/tk/221

Загрузите отсюда griffin.kit, используйте инструмент sdx, чтобы развернуть его и найдите griffin.tcl, чтобы получить хороший набор настроек.

http://wiki.tcl.tk/3411 для инструмента sdx.

1 голос
/ 25 мая 2011

Поскольку в Linux фон Tk :: Entry и Tk :: Text серый, я бы также использовал следующие две строки.

$mw->optionAdd( '*Entry.background',   'snow1' );
$mw->optionAdd( '*Text.background',    'snow1' );

Замените «снег1» цветом на ваш выбор. Вы также можете использовать шестнадцатеричное представление (RGB) цветов, таких как '# ff9696'.

1 голос
/ 24 мая 2009

Тематический движок Tile для Tk делает его намного красивее. Тем не менее, Perl / Tk сильно отстает от развития Tk и не может использовать преимущества Tile и других достижений.

Вам следует выяснить, является ли вариант Tkx для вас. Он не полностью совместим с Perl / Tk, но API довольно близок. Это мост между Perl и Tcl / Tk, поэтому он может использовать все современные функции Tcl / Tk (например, Tile), сохраняя при этом логику приложения, закодированную в Perl. Многие из собственных графических утилит ActiveState используют Tkx с довольно хорошими результатами.
ActiveState PPM
(источник: activestate.com )

Perl 5.00404 невероятно древний. Tkx dist утверждает, что зависит от Perl & ge; 5.008 ... У меня недостаточно старого Perl, чтобы понять, насколько это точно.

...