Ich habe an einer GUI mit Perl Tkx gearbeitet, und festgestellt, dass es zwei separate Funktionen gibt, die Sie verwenden können, um Schaltflächen zu erstellen. (button
und ttk__button
).Perl Tkx, Was ist der Unterschied zwischen "button" und "ttk__button"?
Bis jetzt der einzige Unterschied, den ich fand, ist, dass die button
Funktion scheint, den Text in der Mitte zu rechtfertigen, während die ttk__button
Funktion scheint, den Text zu rechtfertigen.
Beispiel mit 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()
Dieses Skript wird den Text zentrieren:
Beispiel ttk__button
mit:
Dieses Skript den Text rechtfertigt links:
Ich frage mich, was andere Unterschiede gibt es zwischen diesen beiden Funktionen ist und ob es ein besonderer Grund ist, gibt es zwei separate Funktionen, die Schaltflächen erstellen Ist einer davon in der Regel besser zu verwenden als der andere?
Gibt es auch eine Möglichkeit, den Text mit der ttk__button
Funktion zu zentrieren?
EDIT:
Ich fügte hinzu, die "Tcl" Tag dazu da Perl Tkx im wesentlichen aus von Tcl gebaut wird. Ich bin ziemlich gut mit Perl, aber ich bin ein wenig Anfänger, wenn es um Tcl geht.
Obwohl es auf den ersten Blick nicht so aussieht, ist dies eigentlich eher eine Tcl-Frage als eine Perl-Frage, also würde ich gerne eine Antwort von jemandem hören, der Erfahrung mit Tcl hat.
HINWEIS:
Zum Zentrieren von Text in einem ttk__button
die folgende Zeile in Ihrem Code hinzu:
Tkx::ttk__style_configure('TButton', -justify => 'center');
Okay, genau das habe ich mich gefragt, aber gibt es eine Möglichkeit, den Text auf eine 'ttk-Taste' zu zentrieren? Wenn ich mehrere Textzeilen verwende und es alles ausrichtet, sieht es hässlich aus. – tjwrona1992
Persönlich würde ich das Design neu bewerten, das mehrzeiligen Text in einer Schaltfläche platziert. Eine feinere Steuerung von "ttk" -Widgets kann über das Attribut "-style" erfolgen. – tjd
Nun, ich habe einen Knopf, der in einem relativ kleinen Raum passen muss. Selbst wenn es seinen eigenen Weg hatte, den Text, der nützlich sein könnte, zu umschreiben. Gerade jetzt, wenn ich nicht "\ n" verwende, um es mehrere Zeilen zu überschreiten, wird es alles in eine Zeile setzen und das Display strecken, um es anzupassen, das auch nicht sehr gut aussieht. – tjwrona1992