Как я могу улучшить внешний вид графического интерфейса Perl / TK под Perl 5.004?
-
03-07-2019 - |
Вопрос
У меня есть приложение, созданное для работы в Windows, Linux и Solaris, которое использует графический интерфейс Perl / TK
. Из-за ограничений мы ограничены только Perl / TK . Кроме того, мы ограничены старой версией Perl / Tk
, 5.00404
.
Я бы хотел поработать с этими ограничениями, чтобы графический интерфейс выглядел максимально красиво и современно. Р>
Существуют ли какие-либо веб-ресурсы со схемами дизайна ТЗ (для кнопок, рамок, цветов и т. д.), которые могли бы помочь мне в этом начинании? Р> <Ч>
Я также ищу советы по модернизации, такие как здесь :
Если вы обнаружите, что ваши приложения Tk выглядят немного уродливо в системах на основе X, попробуйте добавить следующие строки в начало вашего скрипта:
$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*"); $mw->optionAdd("*borderWidth", 1);
Решение
Попробуйте использовать изображения вместо элементов кнопок, тогда вы можете выбрать любой стиль и шрифты, которые можно запекать. Это будет работать практически для любого элемента, содержимое которого не является динамическим, включая фоны на панелях и т.п. Конечно, это больше работы, но она решает вашу проблему, особенно если у вас есть компетентный художник в вашей проектной группе.
Другие советы
Вы можете использовать механизм тем Tk , чтобы Приложение выглядит лучше.
Использование optionAdd для настройки значений по умолчанию через базу данных параметров разумное начало. Нить об этом можно найти по адресу:
http://tcl.projectforum.com/tk/221
Загрузите отсюда griffin.kit, используйте инструмент sdx, чтобы развернуть его и найдите griffin.tcl, чтобы получить хороший набор настроек параметров.
http://wiki.tcl.tk/3411 для инструмента sdx.
Поскольку в Linux фон Tk :: Entry и Tk :: Text серый, я бы также использовал следующие две строки.
$mw->optionAdd( '*Entry.background', 'snow1' );
$mw->optionAdd( '*Text.background', 'snow1' );
Замените «snow1» цветом на ваш выбор. Вы также можете использовать шестнадцатеричное представление (RGB) цветов, таких как «# ff9696».
Тематический движок Tile для Tk выглядит намного красивее. Тем не менее, Perl / Tk сильно отстает от развития Tk и не может использовать преимущества Tile и других достижений.
Вам следует выяснить, подходит ли вам Tkx . Он не полностью совместим с Perl / Tk, но API довольно близок. Это мост между Perl и Tcl / Tk, поэтому он может использовать все современные функции Tcl / Tk (например, Tile), сохраняя при этом логику приложения, закодированную в Perl. Многие из собственных графических утилит ActiveState используют Tkx с довольно хорошими результатами.
(источник: activestate.com ) р>
Perl 5.00404 невероятно древний. Tkx dist утверждает, что зависит от Perl & # 8805; 5.008 ... У меня недостаточно старого Perl, чтобы понять, насколько это точно.