Python Tkinter 如何使用网格为窗口上色
我正在尝试使用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')
效果如下: