Ich mache ein Projekt zu Hause nur versucht, ein Fenster mit 3 (technisch 4) Frames zu erstellen. Ich habe einen oberen Rahmen, der 2 Rahmen hat (ich möchte einen linken und rechten Rahmen) dann habe ich einen unteren Rahmen, der alles andere abdeckt. Dieser untere Rahmen wird eventuell einen externen Prozess enthalten, aber für ein Bild, das nicht den gesamten Platz einnehmen wird. Der obere Raum wird nicht gleichmäßig aufgeteilt, auch wenn ich die Höhe und Breite gleichmäßig an einem Punkt aufspalte. Ich werde meinen Code senden und ein Bild unten zeigen.Python Tkinter Fenster/Rahmen Anpassung Probleme beim Ausrichten Probleme 2.7
def createFrames(self):
#Main Upper Frame
topFrame = Frame(height=120, width=800, bd=1, relief=SUNKEN)
topFrame.pack(side=TOP)
#Left Frame in Main Upper Frame
topFrameLeft = Frame(topFrame, height=120, width=400)
topFrameLeft.pack(side=LEFT)
#Right Frame in Main Upper Frame
topFrameRight = Frame(topFrame, height=120, width=400)
topFrameRight.pack(side=RIGHT)
#Frame for GPS, Lower
centerFrame = Frame(width=800, height=400, bg="",
colormap="new",bd=3, relief=GROOVE)
centerFrame.pack(side=BOTTOM, fill=BOTH, expand=True)
#photo stuff
photo = PhotoImage(file="GPS_Imitation.gif")
#scale_w = 3
#scale_h = 400/200
#photo = photo.zoom(scale_w, scale_h)
#photo = photo.subsample(1)
Image_Label = Label(centerFrame, image=photo)
Image_Label.photo = photo
Image_Label.pack(fill=BOTH, expand=True)
#Label for Left Frame
Left_Label = Label(topFrameLeft, width=56, text="Audio", bg="gray",
fg="blue")
Left_Label.pack()
#Label for Right Frame
Right_Label = Label(topFrameRight, width=60,
text="Phone/Notification",
bg="Green", fg="Black")
Right_Label.pack()
Ich stellte die Funktion. Ich musste ein paar komische Sachen mit dem Code machen, um es so zu machen. aber das Bild wird nicht erweitert, es graut nur unter und über dem Bild aus. und ich musste die topleft und topright Etiketten in der Breite und Höhe zufällig ändern. Jede Hilfe wäre es zu schätzen. Dies ist in Python mit Tkinter geschrieben!
Um Frames daran zu hindern, ihre Größe anzupassen, um ihren Inhalt anzupassen, können Sie das Widget '.pack_propagate' verwenden. –
Vielleicht sollten Sie '.grid()' anstelle von '.pack()' überprüfen. – Lafexlos
@ PM2Ring: Technisch stimmt das Ausschalten der Geometrieausbreitung fast immer der falschen Lösung, wenn Sie einfach zu wartende Responsive Guis haben wollen. –