Python maximieren abfangen

Fragen zu Tkinter.
Antworten
BerryBlue
User
Beiträge: 41
Registriert: Mittwoch 9. November 2011, 19:57

Hallo erstmal und schonmal danke an alle, die sich Zeit nehmen, sich diese Frage durchzulesen. :wink:
Also, mein Problem ist, das ich auch nach intensiver Internetrecherche (schreibt man das so ^^ ) nicht herausgefunden habe, wie ich den maximieren Button abfangen kann und wie ich es verhindern kann, dass sich das fenster größer "ziehen" lässt.
Mit dem schliessem Button ist es ja ganz leicht, aber gibt es sowas auch für´s Maximieren ?

Code: Alles auswählen

master.protocol("WM_DELETE_WINDOW", minimieren)
Danke für eure Hilfe und fürs durchlesen :)

MFG BerryBlue
Ich weis erst was ich denke, wenn ich höre was ich sage!
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Schau mal in der Dokumentation unter <Configure>...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
bfm
User
Beiträge: 88
Registriert: Donnerstag 14. März 2013, 09:42

hallo

hier müsste deine Lösung zu finden sein:
http://www.tkdocs.com/tutorial/windows.html#wm
==> Resizing Behavior

mfg
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@bfm
Wobei sich Dein Link darauf bezieht, wie man ein bestehendes Fenster selbst modifizieren kann, nicht wie man ein event, das vom Nutzer provoziert wird, abfängt.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BerryBlue
User
Beiträge: 41
Registriert: Mittwoch 9. November 2011, 19:57

Vielen Dank für die schnellen Antworten :)

@Mutella: Kannst du mir das mal an einem beispiel erklären, denn iw. versteh ich das nicht, bzw. finde nicht das richtige

MFG BerryBlue
Ich weis erst was ich denke, wenn ich höre was ich sage!
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@BerryBlue
Irgendwo hast Du ja hinterlegt, wie groß das Fenster ist, ansonsten kannst Du das mit `winfo_width` und `winfo_height` auslesen. Nun bindest Du eine Funktion, die beim <Configure> event aufgerufen werden soll, mit der `bind` Methode an Dein Fenster. Diese Funktion vergleicht dann die hinterlegte Fenstergröße mit der Neuen, die wiederum im `event` hinterlegt ist. Das ganze könnte ungefähr so aussehen (könnte, da ich noch nie was mit tkinter gemacht habe, vielleicht kann ja noch jemand anderes was dazu sagen):

Code: Alles auswählen

class AnyFrame(object):
    def __init__(self, ....):
    ...
    self.max_width, self.max_height = #irgendeine `winfo`-Methode, die die maximale window-Größe zurückgibt
    self.bind('<Configure>', resize)

    def resize(event):
        if event.width, event.height == self.max_width, self.max_height:
            print 'window has max size'
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

Ähm, kann man nicht einfach das verändern der Fenstergrösse komplett verbieten → `Tk.resizable()`. Ist vielleicht einfacher. Die Maximieren-Schaltfläche verschwindet dann automatisch weil sie auf so einem Fenster keinen Sinn macht.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

BerryBlue hat geschrieben:... und wie ich es verhindern kann, dass sich das fenster größer "ziehen" lässt.
Wer lesen kann, ist mal wieder klar im Vorteil... :oops: Ich dachte es geht darum, wie sich ein "Fenster maximieren" event handeln lässt...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BerryBlue
User
Beiträge: 41
Registriert: Mittwoch 9. November 2011, 19:57

Vielen Dank für eure Hilfe, werde es alles mal ausprobieren und dann feedback geben :)

MFG BerryBlue
Ich weis erst was ich denke, wenn ich höre was ich sage!
BerryBlue
User
Beiträge: 41
Registriert: Mittwoch 9. November 2011, 19:57

Edit:

Habe es jetzt mit

Code: Alles auswählen

 master.resizable(width = False, height = False)
geschafft.
Vielen Dank für die vielen Antworten! :wink:

MFG BerryBlue
Ich weis erst was ich denke, wenn ich höre was ich sage!
Antworten