2017-08-23 2 views
0

Bei der Initialisierung des Tkinter-GUI-Elements wird unsere GUI in einem bestimmten Fenster mit eigenem Titel, Symbol und vielen anderen lustigen Elementen platziert.Ändern der Fenstergröße des Tkinter-Objekts mit element.bind

Ich erstelle ein GUI-Programm, das Konsolenfunktion mit spezifischer grafischer Oberfläche implementieren muss. Programm normal funktioniert mit sprachaktivierten Befehlen, so wenn der Benutzer stumm/taub ist, wird per Knopfdruck eine Konsole implementiert, so dass der Benutzer mit dem Programm kommunizieren kann.

So sollte die Konsole nur sichtbar sein, wenn der Benutzer eine Taste auf der Tastatur drückt, und indem die Konsolenfenstergröße implementiert wird, muss der Konsolenraum ausgeglichen werden, da das Fenster eine feste Größe hat und nicht skalierbar ist.

können also sagen, dass wir etwas tkinter bezwecken:

from __future__ import absolute_import, division, print_function, unicode_literals,with_statement 

vStr = lambda x: type(x).__name__ in 'unicode,str' 

try: 
    from Tkinter import Tk 
except ImportError: 
    from tkinter import Tk 

class wind(object): 

    def __init__(self): 
     self._ = Tk() 
     self._.title('programm') 
     self._.geometry('300x400+1+1') 

     self._.bind('<space>', self.change_size) 
     self.change = False 

    def change_size(self,event): 
     #some code here 

    def init(self): 
     self._.mainloop() 

app = wind() 
app.init() 

Wie kann ich Größe eines Fensters self._ Wurzelobjekt auf Ereignis ändern.

+0

Sie bereits scheinen zu wissen, wie die Größe einstellen mit 'geometry' - haben Sie haben versucht, dieselbe Methode in 'change_size' zu ​​verwenden? –

+0

yap, ich habe es in der Antwort gelungen: D Es hat nach mehreren Versuchen funktioniert – Danilo

Antwort

0

Die Funktion hinter einem binden:

from __future__ import absolute_import, division, print_function, unicode_literals,with_statement 

vStr = lambda x: type(x).__name__ in 'unicode,str' 

try: 
    from Tkinter import Tk 
except ImportError: 
    from tkinter import Tk 

class wind(object): 

    def __init__(self): 
     self._ = Tk() 
     self._.title('programm') 
     self._.geometry('300x400+1+1') 

     self._.bind('<space>', self.change_size) 
     self.change = False 

    def change_size(self,event): 
     if self.change: 
      self._.geometry('200x500+3+3') 
     else: 
      self._.geometry('300x400+1+1') 

     self.change = not self.change 

    def init(self): 
     self._.mainloop() 

app = wind() 
app.init() 

Arbeiten unter Windows auf py2.7 und py3.5

Verwandte Themen