Python 3.x 窗格窗口大小调整问题
我一直在为我的应用程序布局尝试panedWindows,但当窗口调整大小时,我遇到了问题。这是我开始使用的布局: 窗格也可以按我的需要拖动,但我想指定哪些窗格可以展开以填充根窗口,哪些窗格保持特定的宽度。例如,当我向右或向左拖动窗口时,扩展大小上的窗格会扩展以填充额外的空间。我只希望中间窗格展开,仅在拖动窗扇时左右窗格展开: 像这样: 当窗格使用pack geometry manager进行管理时,我可以告诉边缘窗格保持特定的宽度,并告诉中心窗格展开。如何使用窗格窗口实现类似的布局 下面是一个简单的工作示例:Python 3.x 窗格窗口大小调整问题,python-3.x,tkinter,Python 3.x,Tkinter,我一直在为我的应用程序布局尝试panedWindows,但当窗口调整大小时,我遇到了问题。这是我开始使用的布局: 窗格也可以按我的需要拖动,但我想指定哪些窗格可以展开以填充根窗口,哪些窗格保持特定的宽度。例如,当我向右或向左拖动窗口时,扩展大小上的窗格会扩展以填充额外的空间。我只希望中间窗格展开,仅在拖动窗扇时左右窗格展开: 像这样: 当窗格使用pack geometry manager进行管理时,我可以告诉边缘窗格保持特定的宽度,并告诉中心窗格展开。如何使用窗格窗口实现类似的布局 下面是
import tkinter
root = tkinter.Tk()
root.geometry("480x200+200+200")
root.title("Paned Window Example")
main = tkinter.PanedWindow()
main.pack(expand = 1, fill = "both")
pane1 = tkinter.Frame(width = 90, bg = "red")
pane2 = tkinter.Frame(width = 310, bg = "blue")
pane3 = tkinter.Frame(width = 90, bg = "red")
for pane in pane1, pane2, pane3 : main.add(pane)
root.mainloop()
将窗格添加到
窗格窗口
时,可以使用拉伸
选项。它采用以下值:“始终”、“第一”、“最后”、“中间”和“从不”。
您可以在中获得更完整的描述
在您的情况下,侧窗格使用“从不”,中间窗格使用“始终”:
import tkinter
root = tkinter.Tk()
root.geometry("480x200+200+200")
root.title("Paned Window Example")
main = tkinter.PanedWindow()
main.pack(expand=True, fill="both")
pane1 = tkinter.Frame(width=90, bg="red")
pane2 = tkinter.Frame(width=310, bg="blue")
pane3 = tkinter.Frame(width=90, bg="red")
main.add(pane1, stretch='never')
main.add(pane2, stretch='always')
main.add(pane3, stretch='never')
root.mainloop()
请注意,上述解决方案仅适用于小部件的tkinter.PanedWindow
,而不适用于ttk
版本。ttk.PanedWindow
的.add()
方法只接受一个选项:weight
。但我们可以通过将侧窗格的权重设置为0,将中间窗格的权重设置为1来实现相同的结果:
import tkinter
from tkinter import ttk
root = tkinter.Tk()
root.geometry("480x200+200+200")
root.title("Paned Window Example")
main = ttk.PanedWindow(orient='horizontal')
main.pack(expand=True, fill="both")
pane1 = tkinter.Frame(width=90, bg="red")
pane2 = tkinter.Frame(width=310, bg="blue")
pane3 = tkinter.Frame(width=90, bg="red")
main.add(pane1, weight=0)
main.add(pane2, weight=1)
main.add(pane3, weight=0)
root.mainloop()
你应该提供。工作完美。