Schrift
[thread]5135[/thread]

Perl/Tk ohne Layoutmanager



<< >> 4 Einträge, 1 Seite
Gast Gast
 2005-12-03 01:51
#45072 #45072
Schönen Abend zusammen.

Bin gerade dabei mich ein bischen mit Perl/Tk zu beschäftigen.
Eine Frage die sich mir gleich stellte und auf die ich noch keine Antwort gefunden habe ist,
ob es möglich ist wie z.B bei Java, den layoutmanager zu deaktivieren und die Größen oder wenigstens die Positionen der einzelnen GUI Komponenten über ein SChema wie ->Location(x,y) zu bestimmen.

Möchte hier keine Diskussion über den Sinn und Unsinn solcher Manager starten, ich komme nur einfach ohne diese viel besser klar.

ist das mit Tk denn überhaupt möglich oder muss ich dafür schon zu den wxWidgets greifen? (Ist das sinnvoll bei Perl?).

Vielen Dank für Antworten!

Gruß,
Crux
betterworld
 2005-12-03 04:03
#45073 #45073
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Ich glaub, das geht, wenn Du statt ->pack einfach ->place(-x=>70, -y=>80) schreibst. Siehe perldoc Tk::place

Quote
oder muss ich dafür schon zu den wxWidgets greifen?
Ich verstehe das "schon" nicht ganz
lichtkind
 2005-12-03 04:32
#45074 #45074
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
also in wx würde das gehen man muss bloss sizer weglassen, kein autosize setzen und den widgets Koordinaten geben(bei erstellen oder nachträglich). aber ich glaub auch das das wirklich kein Grund für eine Entscheidung zwischen den Frameworks.\n\n

<!--EDIT|lichtkind|1133577237-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
ptk
 2005-12-03 11:59
#45075 #45075
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei place() kann man auch mit relativen Angaben arbeiten, dann ist es nicht ganz so "böse". Zum Beispiel zum Zentrieren eines Labels:
Code: (dl )
1
2
3
4
5
6
use Tk;
$top = new MainWindow;
$top->Listbox->pack(-side => "left") for 1..3;
$top->Label(-text => "Hello1", -bg => "red", -fg => "white"
)->place(-relx => 0.5, -rely => 0.5, -anchor => "c");
MainLoop;

Aber wenn man ernsthaften Code schreiben will, der *überall* laufen soll (verschiedene Betriebssysteme, verschiedene Fenstergrößen, verschiedene Zeichensatzgrößen), dann kommt man um pack/grid/form nicht herum.
<< >> 4 Einträge, 1 Seite



View all threads created 2005-12-03 01:51.