Python Tkinter 如何使用网格为窗口上色

2 投票
2 回答
7847 浏览
提问于 2025-04-17 18:32

我正在尝试使用Tkinter写一个小窗口,采用的是网格布局。

代码如下:

from Tkinter import *
from modules.logic import game
import options


class StartWindow:

    def __init__(self):


        data = open("myData", "w")
        data.close()
        self.master = Tk()
        self.l0 =Label (self.master, text = "W=jump", bg = "magenta", font = ("comic sans ms", 20, "bold")).grid(row=0, sticky = W)
        self.l1=Label (self.master, text = "A=left",bg = "magenta",font = ("comic sans ms", 20, "bold")).grid(row = 1, sticky = W)
        self.l2=Label(self.master, text = "D=Duck", bg = "magenta",font = ("comic sans ms", 20, "bold")).grid(row=2, sticky = W )
        self.l3=Label(self.master, text = "Mouse = Shoot", bg = "magenta",font = ("comic sans ms", 20, "bold")).grid(row=3, sticky = W)
        self.l4=Label(self.master, text = "S=Duck", bg = "magenta",font = ("comic sans ms", 20, "bold")).grid(row=4, sticky = W)
        self.l5=Label(self.master, text="Seed:", bg = "magenta",font = ("comic sans ms", 20, "bold")).grid(row=5, sticky = W)
        self.master.minsize(50, 50)
        self.master.weight = 2
        self.master.title("Fluffocalypse")
        self.master.iconify()    
        self.e1 = Entry(self.master)
        self.e1.grid(row=5, column=1, sticky = W)
        self.b1 =Button(self.master, text = "Start", command = self.startGameNormally).grid(row = 6, sticky = W)
        self.b2 = Button(self.master, text = "alten Spielstand laden", command =self.loadOldGame).grid(row = 7, sticky = W)
        mainloop()

这个代码是可以运行的。

不过,有一点我觉得不太对,那就是文本看起来并不像我想要的Comic Sans字体,这算是个小问题。

如果你试试这段代码(请试试),你会看到窗口里有我放置的标签和按钮,颜色也是我设置的那种洋红色。

但是,窗口里空着的地方还是灰色的。我希望这些空白的地方也能变成洋红色。这样做可以吗?如果可以的话,怎么做呢?

网上有很多关于如何改变任何被放置元素颜色的解释,但我用的是grid布局,而不是pack(),所以我找不到如何给整个窗口上色的方法,而不仅仅是我放置标签和按钮的地方。

2 个回答

2

只需要在你的构造函数里加上这一行代码:

self.master.configure(background="magenta")
5

我想你是想把窗口的背景颜色设置成 品红色

self.master = Tk()                                                      
self.master.configure(bg = 'magenta')

效果如下:

品红色窗口

撰写回答