我在这里有这个代码来创建一个多页应用程序:
import tkinter as tk
import base64,os
from icon import *
from tkinter import Label,PhotoImage,Radiobutton,messagebox,ttk
from tkinter import Scrollbar,font as tkfont
from tkinter.constants import actIVE,ANCHOR,BOTTOM,CENTER,DISABLED,GROOVE,HORIZONTAL,LEFT,N,RAISED,X,YES
from typing import Text
from typing_extensions import IntVar
from tkscrolledframe import ScrolledFrame
#from PIL import ImageTk,Image
from Classi_Utenti import *
class SimulatoreIncentivi(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,**kwargs)
self.title_font = tkfont.Font(family='Helvetica',size=18,weight="bold",slant="italic")
self.subtitle_font = tkfont.Font(family='Helvetica',size=12,slant="italic")
self.subsubtitle_font = tkfont.Font(family='Helvetica',size=10,weight="bold")
#CREATE A CONTAINER FOR INNER FRAMES (PAGES)
scrollable = ScrolledFrame(self,width=1730,height=900)
scrollable.pack(side="top",fill="both",expand=True)
scrollable.grid_rowconfigure(0,weight=1)
scrollable.grid_columnconfigure(0,weight=1)
scrollable.grid_propagate(False)
scrollable.bind_arrow_keys(self)
scrollable.bind_scroll_wheel(self)
container = scrollable.display_widget(tk.Frame)
self.frames = {}
#DeclARE AND PLACE INNER FRAMES
for F in (StartPage,InitializationPage,ConsumatoriSemplici,FinanziatoriSemplici,FinanziatoriProprietari,ProprietariSuperficie,ProprietariImpianti,OutputPage,InputParametri,SetterEnergiaCondivisa):
page_name = F.__name__
frame = F(parent=container,controller=self)
self.frames[page_name] = frame
#Metto le pagine nella stessa posizione,quella che è sul top viene mostrata
frame.grid(row=0,column =0,sticky ="nswe")
frame.config(width=1730,height=900)
self.show_frame("InitializationPage")
所以,这基本上是我的代码,然后每个页面都单独创建为一个类。但是正如您现在看到的,我声明了一个名为“可滚动”的容器,其大小为 1730x900。在该容器内,我声明了另一个框架,该框架“附加”了页面列表。然后使用 config 命令将框架调整为与容器相同的尺寸。我有一个无法解决的问题:我想用窗口容器的大小调整内框内容的大小。现在,如果我调整窗口大小,内部框架内的小部件是静态的(它们不会随着窗口调整大小以适应内容)是否有一种简单的方法可以做到这一点?提前致谢!