如何在Perl 5.004下增强Perl / TK GUI的外观?

问题描述 投票:8回答:5

我有一个应用程序,可以在使用Perl/TK GUI的Windows,Linux和Solaris上运行。由于限制,我们仅限于Perl / TK。此外,我们仅限于旧的Perl/Tk版本,5.00404

我想在这些限制内工作,使GUI看起来尽可能美观和现代。

是否有任何网络资源有TO设计方案(按钮,框架,颜色等),可以帮助我做这项工作?


我也在寻找像我找到here那样的现代化建议:

如果您发现您的Tk应用程序在基于X的系统上看起来有点难看,请尝试在脚本顶部添加以下行:

$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*");
$mw->optionAdd("*borderWidth", 1);
perl user-interface tk perltk
5个回答
5
投票

尝试使用图像而不是按钮元素,然后你可以拥有你喜欢的任何风格,并且可以烘焙字体。这几乎适用于内容不是动态的任何元素 - 包括窗格等背景。虽然它更多的工作,但它确实解决了你的问题,特别是如果你的项目组中有一个称职的艺术家。


5
投票

您可以使用Tk theme engine为您的应用程序提供更好的外观。


2
投票

使用optionAdd通过选项数据库调整默认值是一个合理的开始。有关此内容的主题可在以下位置找到:

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

从那里下载griffin.kit,使用sdx工具打开它并找到griffin.tcl以获得一组很好的选项设置。

http://wiki.tcl.tk/3411用于sdx工具。


1
投票

因为在Linux中Tk :: Entry和Tk :: Text的背景是灰色的,所以我也会使用以下两行。

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

用您选择的颜色替换'snow1'。您还可以使用颜色的十六进制表示(RGB),如'#ff9696'。


1
投票

Tk的Tile主题引擎使它看起来更漂亮。然而,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≥5.008......我没有足够的Perl看看它有多准确。

© www.soinside.com 2019 - 2024. All rights reserved.