पेज फ्रेम में, मैंने आंतरिक फ्रेम के अंदर दो फ्रेम भारित किए हैं ताकि वे प्रत्येक स्क्रीन का आधा हिस्सा ले सकें, हालांकि, जब मैं इनमें से किसी एक फ्रेम में विजेट जोड़ता हूं, तो मैंने एक सूची के रूप में एक सूची बॉक्स का उपयोग किया है बड़ा है, फ्रेम में से एक अब दूसरे से अधिक लेता है। मैं इसे कैसे बना सकता हूं ताकि विजेट जोड़े जाने पर आकार बदल न जाए और प्रत्येक खिड़की के आधे आकार के बने रहे?tkinter - विजेट जोड़े जाने पर फ्रेम बदलने वाले आकार को कैसे रोकें?
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()
सुनिश्चित नहीं हैं कि आप एक ही विजेट पर पैक, जगह और ग्रिड मिश्रण किया जाना चाहिए। 'आंतरिक फ्रेम' पर आप इसे पहले रखें, फिर ग्रिड कॉन्फ़िगरेशन का उपयोग करें। मैंने आमतौर पर ग्रिड का उपयोग किया है, लेकिन शायद स्थान और पैक का उपयोग करने में अनुभव वाला कोई व्यक्ति विस्तृत कर सकता है। –