Positionierung des root-Windows

Fragen zu Tkinter.
Antworten
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

wie kann man bitte das root-Window bei TK an einer gewissen Stelle positionieren? (zB mit Koordinaten, oder …)

hätte also gerne, dass das root-Window (statt standardmaessig links oben)…..etwas weiter rechts...oder weiter unten...oder mittig im Bildschirm erscheint?

Bitte um Eure Hilfe dazu.
Danke
msmn
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

hab die Lösung zwischenzeitlich gefunden:

es funktioniert mit der Einstellung "geometry"....also zB:

import tkinter as tk
root = tk.Tk()
# root.geometry('%dx%d+%d+%d' % (window_width, window_height, x_cordinate, y_cordinate))
entweder: root.geometry('%dx%d+%d+%d' % (700, 500, 600, 80))
oder: root.geometry("700x500+600+80")
etc.

...damit kann man Windowsgrösse und Platzierung des root-Windows einstellen

lg
MSMN
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

jetzt suche ich doch noch etwas....nämlich NUR die Fenster-Positionierung anzupassen (aber NICHT die Fenstergrösse)

mit meinem vorher angeführten Befehl: geht glaube ich "nur beides auf einmal"....

weiss also bitte jemand dazu Rat?
msmn
Benutzeravatar
__blackjack__
User
Beiträge: 14092
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@msmn: Lass den Teil für die Grösse mal weg.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

...habe ich schon vorher probiert...das ergibt dann leider einen Fehler!
(Grund: scheinbar benötigt die Einstellung "geometry" eben 3 Attribute (1=für Fenstergrössendefinition, 2=Position_x, 3=Position_y).....und kann "nur" mit allen 3 Attributen aufgerufen werden (zumindest glaube ich es so zu verstehen)
msmn
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein. Zeig was du konkret gemacht hast, statt das nur zu beschreiben.
Benutzeravatar
__blackjack__
User
Beiträge: 14092
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@msmn: Die Aufteilen der Information in 3 Attribute ist interessant. Ich hätte ja gesagt entweder sind es zwei – Grösse und Position – oder vier – Breite, Höhe, X-, und Y-Koordinate. 🙂
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
Benutzeravatar
snafu
User
Beiträge: 6875
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Naja, die Implementierung von Tkinter in Python ist eh der helle Wahnsinn. Allein schon dass man da einen String übergeben muss, ist atemberaubend. Klar, es ist dem Tcl-Hintergrund geschuldet, hätte man IMHO aber trotzdem pythonischer lösen können.
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

@_blackjack_ und @_deeds_: steht in meinem Beitrag weiter oben, nämlich:
import tkinter as tk
root = tk.Tk()
root.geometry("700x500+600+80")

weiss nicht, wie ich die Fenstergrösse von 700x500 (oder was auch immer) "weglassen" könnte..
Benutzeravatar
__blackjack__
User
Beiträge: 14092
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@msmn: Ganz einfach weglassen, im Sinne von den Teil mit der Fenstergrösse einfach nicht hinschreiben.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
msmn
User
Beiträge: 35
Registriert: Samstag 13. Juli 2019, 07:15

@_blackuser_:
Du hast recht...das geht, also zB
statt: root.geometry("700x500+600+80")
funktioniert auch: root.geometry("+600+80")

Danke nochmal
msmn
Antworten