Tkinter 中的拼字游戏

问题描述 投票:0回答:1

我正在尝试使用 Tkinter 编写拼字游戏代码,并且想知道如何使用字母和数字复制拼字游戏图块。我当前的设计是一个框架,左上角有一个标签(网格:0,0),右下角有另一个标签(网格:1,1)。

        self.test=tk.Frame(master=self,width=40,height=30,bg=COLOUR)
        self.testletter=tk.Label(master=self.test,bg=COLOUR,text="A",font=("Helvetica",16,"bold"))
        self.testnumber=tk.Label(master=self.test,bg=COLOUR,text="1",font=("Helvetica",7,"bold"))
        self.testletter.grid(row=0,column=0)
        self.testnumber.grid(row=1,column=1)
        self.test.pack(pady=5,padx=5)

通过将它们设置为相同的背景,它工作正常,但字母被挤到边缘,并且在拼字游戏图块上,它位于图块的中心,数字位于角落。 这里是: My Scrabble Tile

主要问题是标签的文本上方和下方有很多额外的空间。有没有办法删除标签上无用的空白或其他方法来解决我的问题。 我知道我可以在顶部和左侧添加很多填充,但这意味着里面有一个小字母的大图块,并且字母和数字之间仍然有很大的间隙,理想的情况是一个小图块,因为完整的网格将有 15 个,并且应该适合一台计算机屏幕 据我研究,我还没有找到标签空白的任何答案。

python tkinter
1个回答
0
投票

可以使用方法place来调整元素1对应的标签。

代码:

    # Crear frame and pack it
    self.test = tk.Frame(self, width=60, height=40, bg=COLOUR) 
    self.test.pack_propagate(False)
    self.test.pack(pady=20, padx=20)

    # Crear label for "A"
    self.testletter = tk.Label(self.test, bg=COLOUR, text="A", font=("Helvetica", 16, "bold"))
    self.testletter.place(x=5, y=5)

    # Crear a label for "1"
    self.testsubscript = tk.Label(self.test, bg=COLOUR, text="1", font=("Helvetica", 8, "bold"))
    
    # Ajust "1" below "A"
    self.testsubscript.place(x=23, y=20)`
© www.soinside.com 2019 - 2024. All rights reserved.