Perl Tkx,"button"和"ttk__button"有什么区别?

tjw*_*992 5 perl user-interface tcl button tkx

我一直在使用Perl Tkx开发GUI,并发现可以使用两个单独的函数来创建按钮.(buttonttk__button).

到目前为止,我发现的唯一区别是button函数似乎居中对齐文本,而ttk__button函数似乎左对齐文本.


示例使用button:

#!/usr/bin/perl

use strict;
use warnings;

use Tkx;

my $text = "Hello\nworld!\n\nThis is some text...";
my $mw = Tkx::widget->new(".");

my $b = $mw->new_button(
    -text => $text,
    -command => sub { exit; },
);
$b->g_grid;

Tkx::MainLoop()
Run Code Online (Sandbox Code Playgroud)

此脚本将使文本居中:

居中的文字


示例使用ttk__button:

#!/usr/bin/perl

use strict;
use warnings;

use Tkx;

my $text = "Hello\nworld!\n\nThis is some text...";
my $mw = Tkx::widget->new(".");

my $b = $mw->new_ttk__button(
    -text => $text,
    -command => sub { exit; },
);
$b->g_grid;

Tkx::MainLoop()
Run Code Online (Sandbox Code Playgroud)

这个脚本将证明文本是正确的:

左对齐文本


我想知道这两个函数之间有什么其他差异,以及是否有任何特殊原因有两个单独的函数创建按钮.其中一个通常比另一个更好用吗?

还有什么办法可以使用ttk__button函数来证明文本的正确性?

编辑:

我添加了"Tcl"标签,因为Perl Tkx基本上是由Tcl构建的.我对Perl很不错,但对于Tcl来说,我有点新手.

虽然乍一看似乎不是这样,但实际上这更像是一个Tcl问题,而不是Perl问题,所以我很乐意听到Tcl经验丰富的人的回答.


注意:

要将文本居中ttk__button,请在代码中添加以下行:

Tkx::ttk__style_configure('TButton', -justify => 'center');

tjd*_*tjd 5

Button就是说,传统的小工具之一.该ttk部件的家庭是更现代的,其目的是要注意主机操作系统的显示配置.如果您希望自己的应用与用户选择的"主题"融为一体,请使用ttk小部件.另一方面,如果你想做很多工作来适应,或者希望你的应用程序像拇指一样伸出,那么一定要使用"传统"小部件.

ttk可以通过-style选项更好地控制小部件.您可以查看教程页面@ http://www.tkdocs.com/tutorial/styles.html.

对于它的价值,按钮不经常包含多行文本.还有其他小部件在设计时考虑了文本布局.

编辑:

来自tjwrona1992的评论: Tkx::ttk__style_configure('TButton', -justify => 'center');

  • 感谢您使用`style`的提示!在玩了一下之后我就开始工作了.`Tkx :: ttk__style_configure('TButton', - justify =>'center');` (3认同)