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: 14226
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@msmn: Lass den Teil für die Grösse mal weg.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
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: 14226
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. 🙂
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
Benutzeravatar
snafu
User
Beiträge: 6902
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: 14226
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.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
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