You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CustomTkinter grid布局问题:如何让stats_frame尺寸为下方两框两倍

解决CustomTkinter中grid布局框架尺寸比例问题

要实现蓝色框架(stats_frame)高度为下方黑色(control_frame)和白色(current_result_frame)框架的两倍,只需调整left_frame内的行权重配置:

  1. 修改left_frame的行权重设置,将row0的权重设为2,row1和row2的权重设为1:
self.left_frame.rowconfigure(0, weight=2)
self.left_frame.rowconfigure(1, weight=1)
self.left_frame.rowconfigure(2, weight=1)

这样stats_frame会占据left_frame总高度的2/(2+1+1)=50%,另外两个框架各占25%,刚好满足"stats_frame高度是另外两个的两倍"的需求。

  1. 确保所有框架的grid方法都设置了sticky='nesw'(你已经做到了这一点,这是让框架随单元格尺寸拉伸的关键)。

修改后的完整代码:

import customtkinter as ctk

class Neural_Net_GUI():

    def __init__(self):

        # 定义窗口
        self.window = ctk.CTk()
        self.window.geometry('1200x800')
        self.window.columnconfigure(0, weight=3)
        self.window.columnconfigure(1, weight=1)

        self.window.rowconfigure(0, weight=1)
        self.window.rowconfigure(1, weight=10)

        # 示例框架
        self.input_frame = ctk.CTkFrame(master=self.window, fg_color='green')
        self.input_frame.grid(row=0, column=0, columnspan=2, sticky='swne')

        self.graph_frame = ctk.CTkFrame(master=self.window, fg_color='red')
        self.graph_frame.grid(row=1, column=0, sticky='swne')

        self.left_frame = ctk.CTkFrame(master=self.window)
        self.left_frame.columnconfigure(0, weight=1)

        # 修正行权重,实现2:1:1的高度比例
        self.left_frame.rowconfigure(0, weight=2)
        self.left_frame.rowconfigure(1, weight=1)
        self.left_frame.rowconfigure(2, weight=1)

        self.stats_frame = ctk.CTkFrame(master=self.left_frame, fg_color='blue')
        self.stats_frame.grid(row=0, column=0, sticky='nesw')

        self.control_frame = ctk.CTkFrame(master=self.left_frame, fg_color='black')
        self.control_frame.grid(row=1, column=0, sticky='nesw')

        self.current_result_frame = ctk.CTkFrame(master=self.left_frame, fg_color='white')
        self.current_result_frame.grid(row=2, column=0, sticky='nesw')

        self.left_frame.grid(row=1, column=1, sticky='swne')

N = Neural_Net_GUI()

N.window.mainloop()

原理说明:grid布局的行权重决定了额外空间的分配比例,当窗口尺寸变化时,单元格会按照权重比例分配可用空间。设置2:1:1的权重后,stats_frame所在的行会获得两倍于另外两行的空间,从而实现目标尺寸比例。

内容的提问来源于stack exchange,提问作者Adam Brestovansky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:17:06