python - Tkinter 在窗格窗口中动态调整小部件的大小
问题描述
我目前有一个带有两个 LabelPanes 的窗口。在 rightPane 中,我有三个 LabelFrame。当我调整窗口大小时,最底部的 LabelFrame 会变大,但前两个仍然是我在设置它们的高度时指定的大小。我想要的是当窗口在 Y 轴上调整大小时,它们三个都能均匀地增长。这可能吗?
import tkinter as tk
if __name__ == '__main__':
appHeight=720
aspectRatio=16/9
appWidth=int(appHeight*aspectRatio)
app=tk.Tk()
app.title("Title")
app.minsize(width=appWidth,height=appHeight)
#================================================================================
# Setup Panes
#================================================================================
#Create Left Pane for settings
leftPane = tk.PanedWindow(bd=4,relief='raised',bg='red')
leftPane.pack(fill=tk.BOTH,expand=1)
#Add Settings Frame to Pane
settingsFrame = tk.LabelFrame(leftPane,text='Signature Filters',padx=5,pady=5,width=int(appWidth/4))
leftPane.add(settingsFrame)
#Create Right Pane for charts
rightPane = tk.PanedWindow(leftPane,orient=tk.VERTICAL,bd=4,relief=tk.SUNKEN,bg='blue')
leftPane.add(rightPane)
#Add Depth Frame to Pane
depthFrame = tk.LabelFrame(rightPane,text='Depth Signature',padx=5,pady=5,height=int(appHeight/3))
rightPane.add(depthFrame)
#Add Velocity Frame to Pane
velocityFrame = tk.LabelFrame(rightPane,text='Velocity Signature',padx=5,pady=5,height=int(appHeight/3))
rightPane.add(velocityFrame)
#Add Depth Frame to Pane
currentFrame = tk.LabelFrame(rightPane,text='Current Signature',padx=5,pady=5,height=int(appHeight/3))
rightPane.add(currentFrame)
app.mainloop()
解决方案
添加每个窗格时,您需要为stretch
字符串“always”定义选项。
rightPane.add(depthFrame, stretch="always")
rightPane.add(velocityFrame, stretch="always")
rightPane.add(currentFrame, stretch="always")
stretch
接受以下值:
- 始终此窗格将始终伸展。
- first仅当此窗格是第一个窗格(最左侧或最顶部)时,它才会拉伸。
- 仅当此窗格是最后一个窗格(最右侧或最底部)时,它才会拉伸。这是默认值。
- 仅当此窗格不是第一个或最后一个窗格时,它才会拉伸。
- never此窗格永远不会拉伸。
此信息来自规范 tcl/tk 文档的paneconfigure部分。
推荐阅读
- math - 如何将地图图块无缝地包裹在圆柱形周围?
- python - 如何路由到特定的视图集方法 Django
- python - 来自 3D 数据 python 的 2D 热图
- javascript - 有没有办法访问 Rails 在外部压缩和压缩的文件?
- crystal-reports - Crystal Reports - crdb_adoplus.pdb 未加载
- r - 如果我的数据集太大,如何进行聚类分析?
- selenium-chromedriver - Rails 系统测试无法加载模型所需的 lib 文件,文件在开发中加载正常,我该如何解决这个问题?
- amazon-s3 - Shiny:在 selectInput 中列出来自 s3 的对象以进行文件选择和下载
- azure - Azure 更新管理 - 包括 Exchange 和 SQL 更新?
- python - 按类名过滤 pytest 测试