Seite 1 von 1

Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 07:22
von BerryBlue
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

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 09:17
von mutetella
Schau mal in der Dokumentation unter <Configure>...

mutetella

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 09:28
von bfm
hallo

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

mfg

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 09:43
von mutetella
@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

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 14:05
von BerryBlue
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

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 16:48
von mutetella
@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

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 18:27
von 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.

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 18:42
von mutetella
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

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 21:48
von BerryBlue
Vielen Dank für eure Hilfe, werde es alles mal ausprobieren und dann feedback geben :)

MFG BerryBlue

Re: Python maximieren abfangen

Verfasst: Montag 3. Februar 2014, 21:55
von BerryBlue
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