Pracowałem nad graficznym interfejsem użytkownika przy użyciu Perl Tkx i odkryłem, że istnieją dwie oddzielne funkcje, których można użyć do tworzenia przycisków. (button
i ttk__button
).Perl Tkx, Jaka jest różnica między "button" i "ttk__button"?
Do tej pory jedyną różnicą, jaką odkryłem, jest to, że funkcja button
wydaje się wyśrodkowywać tekst, podczas gdy funkcja ttk__button
wydaje się pozostawić do justowania tekstu.
Przykład wykorzystania 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()
Ten scenariusz będzie koncentrować tekst:
przykład za pomocą 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()
Ten skrypt lewo uzasadnić tekst:
Zastanawiałem się, jakie inne różnice istnieją między tymi dwoma funkcjami i czy jest jakiś szczególny powód, istnieją dwie odrębne funkcje stwórz przyciski. Czy jedno z nich jest zazwyczaj lepsze niż inne?
Czy istnieje również sposób na wyśrodkowanie tekstu za pomocą funkcji ttk__button
?
EDIT:
dodałem "Tcl" tag w tym od Perl TKX jest zasadniczo zbudowane off Tcl. Jestem całkiem niezły z Perlem, ale jestem trochę początkującym, jeśli chodzi o Tcl.
Chociaż na pierwszy rzut oka może się to wydawać, to jest to raczej pytanie Tcl niż pytanie w języku Perl, więc chciałbym usłyszeć odpowiedź od kogoś, kto ma doświadczenie z Tcl.
UWAGA:
Aby wyśrodkować tekst w ttk__button
dodać następującą linię do kodu:
Tkx::ttk__style_configure('TButton', -justify => 'center');
Okay, właśnie to zastanawiałem się, ale czy istnieje sposób na wyśrodkowanie tekstu na przycisku "ttk"? Kiedy używam wielu linii tekstu i wyrównuje to wszystko w lewo wygląda brzydko. – tjwrona1992
Osobiście przebadałbym projekt, który umieszcza tekst wieloliniowy w przycisku. Lepszą kontrolę widżetów 'ttk' można wywierać za pomocą atrybutu' -style'. – tjd
Cóż, mam przycisk, który musi zmieścić się na stosunkowo małej przestrzeni. Nawet gdyby miał swój własny sposób na zawijanie tekstu, który byłby użyteczny. Teraz, jeśli nie użyję "\ n", aby przekroczyć wiele linii, umieści to wszystko w jednej linii i rozciągnie ekran tak, aby pasował do niego, co również nie wygląda zbyt dobrze. – tjwrona1992