【发布时间】:2015-01-10 04:39:41
【问题描述】:
我正在使用 tkinter 在 python3 中编写游戏,但在让网格执行我想要它执行的操作时遇到了一些麻烦。我已经浏览了至少五页的谷歌搜索结果,包括我能想到的如何提出这个问题的每个变体的堆栈溢出答案。我终于屈服并创建了这个帐户来询问这个问题。
我所拥有的:一个 button (newGameButton) 和一个位于 frame (topBar) 中心的 label (messageBox)自身居中但不水平跨越整个窗口(contentFrame)。
我设法得到的最好的(通过将sticky=W+E 放在 topBar 上):框架现在跨越整个窗口,按钮和标签保持相同的大小(标签上的粘性没有做任何事情,并且粘贴在该按钮仅使其与标签一样宽),现在卡在 topBar 的左侧。
我想要它做什么:让框架跨越整个窗口,标签也跨越整个窗口,并且按钮居中。
topBar 是columnspan=23 的原因是内容框架中的其余内容是 23 列宽(包括 0 列)。
我在框架中有按钮和标签的原因是我希望围绕它们的整个框具有边框效果。
代码:
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)
有人有什么想法吗?我现在很绝望。
【问题讨论】:
标签: python button tkinter grid centering