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

发布于 2024-07-14 08:10:05 字数 601 浏览 11 评论 0原文

我有一个适用于 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); 
  

I have an application that is built to work on Windows, Linux, and Solaris that uses the Perl/TK GUI. Due to constraints, we are limited to Perl/TK only. Moreover, we are limited to an old Perl/Tk version, 5.00404.

I'd like to work within these limitations to make the GUI look as nice and modern as possible.

Are there any web-resources that have TK design schemes (for buttons, frames, colors, etc) that could assist me in this endeavor?


I am also looking for modernization advices like the one that I found here:

If you're finding that your Tk apps look a little ugly on X-based systems, try adding the following lines to the top of your script:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

千纸鹤 2024-07-21 08:10:05

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

Try using images instead of button elements, then you can have whatever style you like and the fonts can be baked in. This will work for pretty much any element where the contents are not dynamic - including backgrounds on panes and such. Granted it's more work but it does solve your problem, especially if you have a competent artist in your project group.

小清晰的声音 2024-07-21 08:10:05

您可以使用 Tk 主题引擎 为您的应用提供更好的外观。

You could use the Tk theme engine to give your app better looks.

不乱于心 2024-07-21 08:10:05

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

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

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

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

Using optionAdd to tweak defaults through the option database
is a reasonable start. A thread about this can be found at:

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

Download griffin.kit from there, use the sdx tool to unwrap it and locate
griffin.tcl to get a good set of option settings.

http://wiki.tcl.tk/3411 for the sdx tool.

谜泪 2024-07-21 08:10:05

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

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

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

Since in Linux the background of Tk::Entry and Tk::Text is grey i would also use the following two lines.

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

Replace 'snow1' with a color of your choice. You can also use the hex representation(RGB) of the colors like '#ff9696'.

居里长安 2024-07-21 08:10:05

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 来看看它有多准确。

The Tile themeable engine for Tk makes it look much prettier. However, Perl/Tk has lagged far behind Tk's development, and can't take advantage of Tile and other advancements.

You should investigate whether Tkx is an option for you. It's not completely compatible with Perl/Tk, but the API is pretty close. It's a bridge between Perl and Tcl/Tk, so it can use all of the modern Tcl/Tk features (like Tile) while still having application logic coded in Perl. Quite a few of ActiveState's own graphical utilities use Tkx, with fairly good-looking results.
ActiveState PPM
(source: activestate.com)

Perl 5.00404 is incredibly ancient, though. The Tkx dist claims to depend on Perl≥5.008... I don't have an old enough Perl to see how accurate that is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文