Как я могу улучшить внешний вид GUI Perl/TK под Perl 5.004?

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

Я хотел бы работать в этих ограничениях, чтобы сделать GUI выглядеть как можно лучше и современнее.

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


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

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

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

5 ответов


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


можно использовать TK theme engine чтобы ваше приложение выглядело лучше.


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

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

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

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


на плитка themeable двигатель для Tk делает его выглядеть гораздо красивее. Однако Perl / Tk сильно отстает от развития Tk и не может воспользоваться преимуществами плитки и других достижений.

вы должны исследовать, будет ли Tkx Это вариант для вас. Он не полностью совместим с Perl / Tk, но API довольно близок. Это мост между Perl и Tcl/ Tk, поэтому он может использовать все современные функции Tcl / Tk (например, плитку), все еще имея приложение логика закодирована в Perl. Довольно много собственных графических утилит ActiveState используют Tkx, с довольно красивыми результатами.
ActiveState PPM http://docs.activestate.com/activeperl/5.8/images/ppm_gui.png

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


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

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

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