如何在Perl 5.004下增强Perl / TK GUI的外观?
-
03-07-2019 - |
题
我有一个应用程序,可以在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);
解决方案
尝试使用图像而不是按钮元素,然后你可以拥有你喜欢的任何风格,并且可以烘焙字体。这几乎适用于任何内容不是动态的元素 - 包括窗格等背景。虽然它更多的工作,但它确实解决了你的问题,特别是如果你的项目组中有一个称职的艺术家。
其他提示
您可以使用 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'。
Tk的 Tile 主题引擎让它看起来更漂亮。然而,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≥ 5.008 ......我没有足够的Perl来看看它有多精确。