![](/img/trans.png)
[英]How to set the default size of Frames inside a PanedWindow in tkinter?
[英]Tkinter frames container inside a PanedWindow
我有一个 Tkinter 应用程序,其中PanedWindow
的左侧使用此处描述的框架容器,右侧有一个用于记录的ScrolledText
,如此处所述。 我还使用它来调整框架容器中框架的大小,因为它们具有不同的大小。
我的问题是,每当使用此处的show_frame(..)
方法显示不同的帧时,右侧( ScrolledText
)不会调整大小以匹配新的帧大小并覆盖帧内容。
这是构造PanedWindow
和框架容器的代码部分。
class Main(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.protocol("WM_DELETE_WINDOW", self.on_closing)
self.geometry('1366x768')
self.resizable(True, True)
self.columnconfigure(0, weight=1)
self.rowconfigure(0, weight=1)
# Horizontal pane
self.horizontal_pane = tk.PanedWindow(self, orient=HORIZONTAL)
self.horizontal_pane.grid(row=0, column=0, sticky="nsew")
# Frames container
self.container = tk.Frame(self.horizontal_pane)
self.horizontal_pane.add(self.container)
# Log frame
self.console_frame = tk.Frame(self.horizontal_pane)
self.console_frame.columnconfigure(0, weight=1)
self.console_frame.rowconfigure(0, weight=1)
self.horizontal_pane.add(self.console_frame, stretch='always')
我该如何解决?
设法通过编辑show_frame()
方法来解决它:
def show_frame(self, page_name):
for frame in self.frames.values():
frame.grid_remove()
self.horizontal_pane.grid_remove() # Add this
frame = self.frames[page_name]
frame.grid()
self.horizontal_pane.grid() # And that
不确定这是否是正确的方式,但现在每当显示新框架时,右侧大小的ScrolledText
都会调整大小以匹配左侧框架大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.