tjw*_*992 5 perl user-interface tcl button tkx
我一直在使用Perl Tkx开发GUI,并发现可以使用两个单独的函数来创建按钮.(button和ttk__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');
Button就是说,传统的小工具之一.该ttk部件的家庭是更现代的,其目的是要注意主机操作系统的显示配置.如果您希望自己的应用与用户选择的"主题"融为一体,请使用ttk小部件.另一方面,如果你想做很多工作来适应,或者希望你的应用程序像拇指一样伸出,那么一定要使用"传统"小部件.
ttk可以通过-style选项更好地控制小部件.您可以查看教程页面@ http://www.tkdocs.com/tutorial/styles.html.
对于它的价值,按钮不经常包含多行文本.还有其他小部件在设计时考虑了文本布局.
编辑:
来自tjwrona1992的评论:
Tkx::ttk__style_configure('TButton', -justify => 'center');