我是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")
如您所见,框架中的每个索引都包含对框架的引用。
所以,我的问题是,当我将图块放置在两个完全不同的帧中时,为什么添加“文本”小部件会干扰图块?
答案 0 :(得分:1)
对于文本窗口小部件,宽度和高度以字符和文本行数表示。 width=200, height=525
的宽度为200个字符,高度为525行。这些图块消失的原因是文本小部件将它们“向下推”到框架中。
尝试width=10, height=10
,文本小部件将重新出现。