Tk-raster wird nicht ordnungsgemäß angepasst
Ich bin versucht, zu schreiben eine einfache Benutzeroberfläche mit Tkinter in python und ich Schaffe es nicht, die widgets in einem raster zu ändern. Wenn ich die Größe des Hauptfensters den Eintrag-und button-widgets nicht anpassen.
Hier ist mein code:
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, padding=(3,3,12,12))
self.grid(sticky=N+W+E+S)
self.createWidgets()
def createWidgets(self):
self.dataFileName = StringVar()
self.fileEntry = Entry(self, textvariable=self.dataFileName)
self.fileEntry.grid(row=0, column=0, columnspan=3, sticky=N+S+E+W)
self.loadFileButton = Button(self, text="Load Data", command=self.loadDataClicked)
self.loadFileButton.grid(row=0, column=3, sticky=N+S+E+W)
self.columnconfigure(0, weight=1)
self.columnconfigure(1, weight=1)
self.columnconfigure(2, weight=1)
app = Application()
app.master.title("Sample Application")
app.mainloop()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen eines root-Fenster und columnconfigure es so, dass die Frame-widget erweitert auch. Das ist das problem, du hast eine implizite root-Fenster, wenn Sie nicht angeben, und der frame selbst ist, was nicht erweitern richtig.
Benutze ich pack dafür. In den meisten Fällen ist es ausreichend.
Aber keine Mischung von beiden!
Einem Beispiel arbeiten. Beachten Sie, dass Sie müssen explizit gesetzt werden, konfigurieren Sie für jede Spalte und Zeile verwendet, aber columnspan für den button ist eine Zahl, die größer ist als die Anzahl der angezeigten Spalten.