2009-03-04 64 views
8

我有一个应用程序可以在使用Perl/TK GUI的Windows,Linux和Solaris上工作。由于受到限制,我们仅限于Perl/TK 只有。此外,我们仅限于旧的Perl/Tk版本,5.00404如何在Perl 5.004下增强Perl/TK GUI的外观?

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

是否有任何网站资源有TK设计方案(对于按钮,框架,颜色等),可以帮助我在这项努力?


我也在寻找现代化的建议就像一个,我发现here

如果你发现你的应用Tk的眼光放在基于X的系统有点难看,尝试添加下面几行到脚本的顶部:

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

你能给我们一个截图的应用程序吗?根据我的经验,使GUI更好的是关于设计而不是关于小部件的设置(取决于你对“nice”的定义,当然是这样)。也许如果我们看到你现在有什么我们可以提出一些建议。 – 2009-03-06 00:50:42

+1

让我猜,Igor ,你在英特尔工作? – 2009-05-23 03:28:54

+0

Artem:是的,我记得你从一个项目中优化了现有的Perl代码 – 2009-05-23 10:35:13

回答

5

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

5

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

+1

Downvoted,因为你不能从Perl 5.004访问ttk的东西。需要至少5.6来访问允许在最近版本的Tk中使用主题支持的新的绑定(Tkx或Tcl :: Tk)。 – 2009-03-05 04:41:00

2

使用optionAdd通过选项数据库 调整默认值是一个合理的开始。关于这个线程,可以发现:

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

下载griffin.kit从那里,使用SDX工具来解开它,并找到 griffin.tcl获得一套良好的选项设置。

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

1

Tile Tk的主题引擎使它看起来更漂亮。但是,Perl/Tk远远落后于Tk的开发,并且无法利用Tile和其他技术。

您应该调查Tkx是否适合您。它与Perl/Tk不完全兼容,但API非常接近。它是Perl和Tcl/Tk之间的桥梁,所以它可以使用所有现代的Tcl/Tk特性(比如Tile),同时仍然使用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来看看它有多准确。

1

由于在Linux中Tk :: Entry和Tk :: Text的背景是灰色的,我还会使用以下两行。

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

将“snow1”替换为您选择的颜色。您也可以使用颜色(如#ff9696)的十六进制表示(RGB)。