Nel frame della pagina, ho pesato due fotogrammi all'interno di innerFrame in modo che occupino ciascuno metà dello schermo, tuttavia, quando aggiungo un widget a uno di questi frame, ho usato un listbox come esempio è grande, uno dei fotogrammi ora occupa più dell'altro. Come faccio a fare in modo che i fotogrammi non cambino le dimensioni quando viene aggiunto un widget e ciascuno rimane metà della dimensione della finestra?tkinter - Come smettere di cambiare le dimensioni del frame quando viene aggiunto il widget?
Ecco il mio codice:
import tkinter as tk
from tkinter import ttk
class Program(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.iconbitmap(self, default = "")
tk.Tk.wm_title(self, "")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (Page, Other):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row = 0, column = 0, sticky = "nsew")
self.show_frame(Page)
def show_frame(self,cont):
frame = self.frames[cont]
frame.tkraise()
class Page(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
innerFrame = tk.Frame(self, bg="red")
innerFrame.place(relx=.5, rely=.5, anchor="c", relwidth=1.0, relheight=1.0)
innerFrame.grid_rowconfigure(0, weight=1)
innerFrame.grid_rowconfigure(1, weight=1)
innerFrame.grid_columnconfigure(0, weight=1)
#First Half
frameOne = tk.Frame(innerFrame, bg="pink")
frameOne.grid(row=0, sticky="NSWE")
#Second Half
frameTwo = tk.Frame(innerFrame, bg="green")
frameTwo.grid(row=1, sticky="NSWE")
lb = tk.Listbox(frameTwo)
lb.pack(fill="both", expand=True)
class Other(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
app = Program()
app.state('zoomed')
app.mainloop()
Non sono sicuro si dovrebbe essere mescolando pacchetto, luogo e la griglia sugli stessi widget. Su 'innerFrame' lo metti per primo, poi usa la configurazione della griglia. Di solito ho appena usato la griglia, ma forse qualcuno con esperienza nell'uso di place and pack può elaborare. –