为什么 Window 着色时没有填满 Python 中 Window 的中间?

Why does the Window, when coloured, does not fill in the middle of the Window in Python?

我使用 tkinter 创建了一个 Window 并且 config 使 root 具有 bg 颜色。我将 bg="Black" 设置为整个 Window 黑色,但是当我测试脚本时, Window 周围的 space 是黑色,但 Window 中间还是白色的。

我尝试在互联网上搜索,但找不到任何内容(可能是措辞问题,但我不知道更好的措辞方式)。我尝试了不同的方式来表达这个问题,比如 "Why does the background colour of a Window not fill the middle?" 和 "Why does the bg="Black“not fill the middle in Python”,但它提供了 tkinter 和图片着色的教程Python.

我也试过将其他属性附加到 config 但像 fg="Black" 但代码抛出一个 Syntax Error 说明“_tkinter.TclError:未知选项“-fg”” .我不知道是什么原因造成的,也不知道如何解决。

这是代码段:

def mainloop_sw():
root = tk.Tk()
root.title("Adventure")
root.geometry("250x250")
root.config(bg="Black")
app = Window(root)
app.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
root.mainloop()


if __name__ == "__main__":
    mainloop_sw()

如您所见,root config肯定要有 bg="Black",但中间部分是白色的。

这是上下文图片:

Image of Window

如您所见,中间部分不是黑色,是的,有小部件,但它们都是黑色(labels)或灰色(button s) 程序中没有其他小部件可以掩盖背景。如果您需要对此进行确认,您可以索取完整代码。

为什么 Window 的中间位(如上图所示)在 root config 必须有 bg="Black" 时没有涂成黑色并且我该如何解决?

唯一的解释是 WindowFrame 或其他背景为白色的小部件。

解决方案是修改 Window 使其背景与根 window 的背景相匹配。