Domanda

La dimensione delle finestre Tkinter può essere controllato tramite i seguenti metodi:

.minsize()
.maxsize()
.resizable()

Ci sono modi equivalenti per controllare le dimensioni di Tkinter o TTK Frames?

@Bryan: ho cambiato il codice frame1.pack al seguente:

frame1.pack(fill='both', expand=True)
frame1.bind( '<Configure>', maxsize )

E ho aggiunto questo gestore di eventi:

# attempt to prevent frame from growing past a certain size
def maxsize( event=None ):
    print frame1.winfo_width()
    if frame1.winfo_width() > 200:
        print 'frame1 wider than 200 pixels'
        frame1.pack_propagate(0)
        frame1.config( width=200 )
        return 'break'

Le suddette rileva gestore di eventi che la larghezza di una cornice è troppo grande, ma non è in grado di impedire l'aumento delle dimensioni accada. Si tratta di una limitazione di Tkinter o ho frainteso la tua spiegazione?

È stato utile?

Soluzione

Non c'è un'unica funzione magica per forzare un telaio di una dimensione minima o fissa. Tuttavia, si può certamente forzare le dimensioni di un fotogramma, dando la cornice di una larghezza e l'altezza. È quindi necessario fare potenzialmente altre due cose: quando si mette questa finestra in un contenitore è necessario assicurarsi che il gestore di geometria non si restringe o espandere la finestra. Due, se il frame è un contenitore per altro widget, griglia svolta o propagazione pacchetto fuori in modo che il telaio non si restringe o espandere per adattarsi proprio contenuto.

Si noti, tuttavia, che questo non vi impedisce di ridimensionare una finestra per essere più piccolo di un telaio interno. In questo caso sarà solo essere agganciato al telaio.

import Tkinter as tk

root = tk.Tk()
frame1 = tk.Frame(root, width=100, height=100, background="bisque")
frame2 = tk.Frame(root, width=50, height = 50, background="#b22222")

frame1.pack(fill=None, expand=False)
frame2.place(relx=.5, rely=.5, anchor="c")

root.mainloop()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top