Tkinter控件颜色不改变

2024-04-27 04:12:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当我把一个小部件放进框架里,框架的颜色就消失了。如果之前是“黑色”,那么在帧内放置widget(label)之后,颜色再次变为白色。 这是我的密码:

from tkinter import *
root = Tk()
root.geometry("700x600")
f = Frame(root, height = 400, width = 400, bg = 'black')
f.pack()
id = Label(f, text = "Email:", fg = 'blue', font = ('Kristen ITC', 18))
id.pack()

Tags: fromimport框架id密码颜色部件tkinter
2条回答

默认情况下,小部件收缩或扩展以适应其内容。添加按钮时,框架将缩小以适合。你知道吗

看起来您希望框架只占用根窗口的一部分。与其明确给出框架的宽度和高度,不如让tkinter为您这样做。用你想要的小部件填充框架,让tkinter决定框架应该有多大。然后,对gridpack使用适当的选项来逻辑地排列它们。当tkinter被允许制作合适大小的小部件时,您将得到一个响应性更好的UI。你知道吗

例如,如果在调用帧上的pack时设置fillexpand选项,它将不会缩小以适应。如果以后需要添加更多的小部件,则不必修改代码的其他部分使其适合。你知道吗

f.pack(fill="both", expad=True)

您也可以通过调用f.pack_propagate(False)来关闭这个“收缩到适合”功能,但这很少是正确的解决方案,因为它会强制您计算大小,如果您在具有不同字体或不同分辨率的系统上运行程序,您的计算可能会出错。你知道吗

您的Frame正在将自身调整为Label。你需要设置…:

...
f.pack_propagate(False)
f.pack()
...

为了Frame保持自己的维度而不受its子部件的影响。你知道吗

相关问题 更多 >