我正在使用 tkinter 编写 Python3 游戏,但是我在使网格按我的意愿工作方面遇到了一些小问题。我已经查看了至少五页谷歌结果,包括堆栈溢出答案,涵盖我能想到的每种形式来提问这个问题。最后,我不得不创建这个账户来询问这个问题。
我有的:一个位于 frame(topBar)中心的button(newGameButton)和一个label(messageBox),该 frame 本身居中,但水平方向上并未延伸到整个窗口(contentFrame)。
我最好的尝试(通过在 topBar 上放置 sticky=W+E
):frame 现在跨越整个窗口,按钮和标签保持相同大小(标签上的 sticky 没有起作用,而按钮上的 sticky 只使其与标签一样宽),并且现在紧贴在 topBar 的左侧。
我想要的效果:使该 frame 跨越整个窗口,同时使标签也跨越整个窗口,并使按钮居中。
topBar 的 columnspan=23
的原因是 content frame 中的其他内容宽度为 23 列(包括第 0 列)。
我将按钮和标签放在一个 frame 中,因为我希望围绕它们的整个框具有边框效果。
代码:
self.contentFrame = Frame(self.root)
self.contentFrame.grid(row=0, column=0)
self.topBar = Frame(self.contentFrame, border=2, relief=RAISED)
self.topBar.grid(row=0, column=0, columnspan=23)
self.newGameButton = Button(self.topBar, text="New Game")
self.newGameButton.grid(row=0, column=0)
self.messageBox = Label(self.topBar, textvariable=self.message, height=2)
self.messageBox.grid(row=1, column=0, sticky=W+E)
有人有什么想法吗?我现在非常绝望。