[英]Why the left frame is smaller than the right one? - grid layout
我是網格布局的新手(使用多年)。
我想創建一個 window,上半部分有兩個框架,下半部分有一個框架。
這是我的 Class 代碼:
import customtkinter as ctk
class SettingsWindow(ctk.CTk):
def __init__(self):
super().__init__()
self.title('Einstellungen')
self.geometry('1000x750+10+10')
self.grid_rowconfigure(0, weight=1)
self.grid_rowconfigure(1, weight=1)
self.grid_columnconfigure(0, weight=1)
self.grid_columnconfigure(1, weight=1)
self.frame_settings = ctk.CTkFrame(self, border_width=1, border_color='black')
self.frame_settings.grid(row=0, column=0, sticky='nesw', padx=(5, 5), pady=(5, 5))
self.frame_settings.grid_columnconfigure(0, weight=1)
self.label_settings = ctk.CTkLabel(self.frame_settings, bg_color='lightgrey', text='Einstellungen')
self.label_settings.grid(row=0, column=0, columnspan=2, padx=(5, 5), pady=(5, 5))
self.frame_database_settings = ctk.CTkFrame(self, border_width=1, border_color='black')
self.frame_database_settings.grid(row=0, column=1, sticky='nesw', padx=(5, 5), pady=(5, 5))
self.frame_database_settings.grid_columnconfigure(0, weight=1)
self.label_database_settings = ctk.CTkLabel(self.frame_database_settings, bg_color='lightgrey',
text='Datenbank-Einstellungen')
self.label_database_settings.grid(row=0, column=0, columnspan=2, padx=(5, 5), pady=(5, 5))
self.frame_rules = ctk.CTkFrame(self, border_width=1, border_color='black')
self.frame_rules.grid(row=1, column=0, columnspan=2, sticky='nesw', padx=(5, 5), pady=(5, 5))
self.frame_rules.grid_columnconfigure(0, weight=1)
self.label_rules = ctk.CTkLabel(self.frame_rules, text='Regeln')
self.label_rules.grid(row=0, column=0, columnspan=2, pady=(5, 5))
SettingsWindow().mainloop()
當我運行它時,左上框架比右框架小,但我希望左右框架的寬度相同。
我該怎么做?
如果您正在使用grid
並希望列的大小與其權重成正比,請將兩列的uniform
屬性設置為相同的值。 值是什么並不重要,所有具有相同值的列都將根據它們的權重統一調整大小。
如果不使用uniform
設置,那么每列開始時都會盡可能小,然后根據它們的權重分配任何額外的空間。
這意味着,在這種特定情況下,右列最初會更寬,因為 label 比左列寬。 然后,由於 weight 參數,額外的空間被平均添加到每一列。 因為右框架開始時更寬,然后獲得與左框架相同的額外空間,所以它仍然更寬。
self.grid_columnconfigure(0, weight=1, uniform=1)
self.grid_columnconfigure(1, weight=1, uniform=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.