Tkinter帧互相干扰

时间:2018-10-10 10:48:22

标签: python tkinter

我是python的新手,我正在为使用Tkinter的基于图块的游戏设计一个简单的GUI。我最近发现了有关PyGame的信息,我可能会考虑使用它,但现在我想诊断出此错误。

这是我的问题。

根窗口包含两个框架-一个用于图块的框架和一个用于游戏历史的框架。

图块的框架由另外11x7框架组成,这些框架具有不同的彩色背景,并且游戏历史记录的框架将包含一个简单的Text小部件。

我像这样在根窗口中构造框架:

# Create the root window
    root = tk.Tk()
    root.title("The Downfall of Pompeii")
    root.geometry("1025x525")
    root.configure(background="red")
    # root.resizable(False, False)

    board_frame = tk.Frame(root, width=825, height=525)
    information_frame = tk.Frame(root, width=200, height=525)

    board_frame.grid(row=0, column=0),
    information_frame.grid(row=0, column=1)

这可以按预期工作:game window

但是,当我将Text小部件添加到信息框中时,如下所示:

information_area = tk.Text(information_frame, width=200, height=525)
information_area.grid(row=0, column=0)

发生这种情况:tiles disappear

已添加了文本小部件,该文本小部件可以按预期工作,但是现在它干扰了我添加到board_frame的所有帧(平铺)。逐帧添加帧,然后使用此for循环对齐:

# Align all frames
for i in range(rows):
    for j in range(cols):
        frames[i][j].grid(row=i, column=j, columnspan=1,  sticky="nsew")

如您所见,框架中的每个索引都包含对框架的引用。

所以,我的问题是,当我将图块放置在两个完全不同的帧中时,为什么添加“文本”小部件会干扰图块?

1 个答案:

答案 0 :(得分:1)

对于文本窗口小部件,宽度和高度以字符和文本行数表示。 width=200, height=525的宽度为200个字符,高度为525行。这些图块消失的原因是文本小部件将它们“向下推”到框架中。

尝试width=10, height=10,文本小部件将重新出现。