Python Tkinter - Ändert die Größe von Widgets gleichmäßig in einem Fenster

Ich habe eine kleine Test-Python-App, da ich sowohl Python als auch Tkinter lerne, und ich versuche herauszufinden, wie ich die Größe eines Etikettenrasters in einem Fenster gleichmäßig ändern kann. Ich möchte ein großes Raster mit verschiedenfarbigen Quadraten erstellen, daher verwende ich Etiketten mit einer Hintergrundfarbe, um die Quadrate zu erstellen. Ich möchte die Größe der Quadrate automatisch ändern, wenn der Benutzer das Fenster vergrößert, und dann die Größe ändern und verkleinern, damit alle die gleiche Größe haben, wie das Fenster verkleinert wird.

Etwas wie das:

Das ändert die Größe und skaliert gleichmäßig wie folgt:

Mit anderen Worten: Jedes Etikett sollte mit der Skalierung des Fensters einheitlich skaliert werden. Ich bin mir nicht mal sicher, ob ich die richtigen Begriffe für "Fenster" und "Widget" verwende. Aber ich platziere Etiketten auf einer GUI.

Testcode, mit dem ich versuche, dies zum Laufen zu bringen:

    import Tkinter

class simpleapp_tk(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

    def initialize(self):
        self.grid()

        label = Tkinter.Label(self,anchor="center",bg="green")
        label.grid(column=0,row=0,sticky='EW')

        label2 = Tkinter.Label(self,anchor="center",bg="black")
        label2.grid(column=1,row=0,sticky='EW')

        label3 = Tkinter.Label(self,anchor="center",bg="red")
        label3.grid(column=2,row=0,sticky='EW')

        label4 = Tkinter.Label(self,anchor="center",bg="purple")
        label4.grid(column=0,row=1,sticky='EW')

        label5 = Tkinter.Label(self,anchor="center",bg="blue")
        label5.grid(column=1,row=1,sticky='EW')

        label6 = Tkinter.Label(self,anchor="center",bg="yellow")
        label6.grid(column=2,row=1,sticky='EW')


        self.grid_columnconfigure(0,weight=0)

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title("Test App")
    app.mainloop()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage