首页 > 解决方案 > 当我放大窗口时,框架的旧背景颜色出现在 Tkinter

问题描述

在 Python Tkinter 中,我使用带有黑色框架背景颜色的自定义 ttk 主题。

但是,当我放大窗口时,超出框架原始大小的部分以常规灰色显示。我该如何解决?

谢谢!

标签: pythontkinter

解决方案


听起来您还没有配置背景框架以正确填充窗口。

如果您正在使用pack,请确保您已使用expandandfill选项:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry("200x200")

ttk.Style().configure('TFrame', background='#b22222')
backgroundFrame = ttk.Frame(root)

backgroundFrame.pack(fill="both", expand=True)

root.mainloop()

如果您使用grid,请确保为框架的行和列赋予权重,并确保使用sticky框架上的属性:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry("200x200")

ttk.Style().configure('TFrame', background='#b22222')
backgroundFrame = ttk.Frame(root)

root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)

backgroundFrame.grid(row=0, column=0, sticky="nsew")

root.mainloop()

如果您使用place,请使用相对宽度和高度:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry("200x200")

ttk.Style().configure('TFrame', background='#b22222')
backgroundFrame = ttk.Frame(root)

backgroundFrame.place(x=0, y=0, relwidth=1, relheight=1)

root.mainloop()

推荐阅读