Seite 1 von 1

Position von GUI-Elementen festlegen

Verfasst: Donnerstag 13. Dezember 2012, 16:17
von FSXTim
Hallo,

ich habe erst letzten Montag mit Python angefangen und habe nun eine kleine Frage:

wie kann ich die Position des Elements 'button1' genau festlegen? Bis jetzt weiß ich nur, wie man die Position von GUI-Elementen grob festlegt, wie z.B. mit 'side=LEFT'.

Code: Alles auswählen

button1 = Button(window, text="Click", command=window.destroy, width = 16)
button1.pack(side=LEFT)
VG

Re: Position von GUI-Elementen festlegen

Verfasst: Donnerstag 13. Dezember 2012, 21:48
von BlackJack
@FSXTim: Warum willst Du das machen? Üblicherweise überlässt man die exakte Platzierung von GUI-Elementen einem Layout-Manager, damit die GUI auch überall und unter den verschiedensten Bedingungen *benutzbar* bleibt. Das fängt damit an, dass man in der Regel keine Fenstergrösse vorgibt, sondern das ebenfalls dem GUI-Toolkit überlässt das Fenster so gross zu machen, dass alles rein passt was man darstellen möchte. Nicht kleiner, aber eben auch nicht unnötig grösser.

Beim `pack()`-Layout-Manager sollte man innerhalb eines Container-Widgets die `side`-Werte nicht mischen, wenn man nicht genau weiss was man da tut. Das kann zu unerwarteten Ergebnissen führen oder in Extremfällen zu einer Endlosschleife des Layoutmanagers.

Re: Position von GUI-Elementen festlegen

Verfasst: Donnerstag 13. Dezember 2012, 22:39
von FSXTim
Hallo,

vielen Dank für deine Antwort. Ich kenne das von LUA, dass man den GUI-Elementen eine Position zuordnen kann. Dies finde ich einfach besser, da ich dann selber entscheiden kann, welcher Text, Button usw. an welcher Stelle platziert wird.

VG

Re: Position von GUI-Elementen festlegen

Verfasst: Donnerstag 13. Dezember 2012, 23:05
von EyDu
FSXTim hat geschrieben:Ich kenne das von LUA, dass man den GUI-Elementen eine Position zuordnen kann. Dies finde ich einfach besser, da ich dann selber entscheiden kann, welcher Text, Button usw. an welcher Stelle platziert wird.
Das ist für den Entwickler zunächst auch einfacher. Allerdings hast du ein Problem, sobald du dein Programm auf einem anderen Rechner ausführst oder bei dir auch nur die Größe von Schriften oder Widgeteigenschaften änders. Dann entstehen große Lücken, Text wird über die Begrenzungen hinaus geschrieben oder Elemente sind in einader verschoben. Hinzu kommt dann noch, dass deine Anwendung nicht mit dem System skaliert. Da hat man einen extra großen Bildschirm und dann quetscht ein Programm alles auf ein kleines Fenster zusammen, welches sich beim Vergrößern nicht sinnvoll verhält.

Wenn du es also richtig machen willst, dann hast du gar keine Andere Wahl als die Verwendung eines Layout-Managers. Mit pixelgenauer Positionierung wirst du nicht glücklich. Zum einen, weil es auf allen anderen System grottig aussehen wird und zum anderen, weil der Wartungsaufwand riesig wird. Füge mal ein neues Element zwischen 20 andere ein oder verändere den Text. Dann musst du entweder alles per Hand anpacken (was sehr fehleranfällig ist) oder das dynamisch gestallten. Im letzten Fall kannst du es aber auch gleich mit einem Layoutmanger einfacher (und besser) haben.

Re: Position von GUI-Elementen festlegen

Verfasst: Freitag 14. Dezember 2012, 00:18
von FSXTim
Vielen Dank auch für deine Antwort!
Du hast mich überzeugt. Ich werde nun also mal an meinem ersten Python-Projekt weiterarbeiten.

Danke nochmal!

VG