在google中使用“如何使tkinter網格擴充”,我遇到了這個問題。
引用布萊恩·奧克利的話Rows and columns have "weight" which describes how they grow or shrink to fill extra space >in the master. By default a row or column has a weight of zero, which means you've told the >label to fill the column but you haven't told the column to fill the master frame.
要解決這個問題,給柱子一個重量。class Test():
def __init__(self,root):
self.root = root
self.root.columnconfigure(0, weight=1)
self.root.config(bg='green')
self.message = 'test message'
self.contentFrame = Frame(self.root)
self.contentFrame.config(background='black',borderwidth=5,relief ='sunken')
self.contentFrame.grid(row=0, column=0, sticky='news')
self.contentFrame.columnconfigure(0, weight=1)
self.topBar = Frame(self.contentFrame, border=2, relief=RAISED)
self.topBar.grid(row=0, column=0, columnspan=23,sticky=W+E)
self.topBar.config(background='blue')
self.topBar.columnconfigure(0, weight=1)
self.newGameButton = Button(self.topBar, text="New Game")
self.newGameButton.grid(row=0, column=0)
self.newGameButton.config(background='red')
self.messageBox = Label(self.topBar, text=self.message, height=2)
self.messageBox.grid(row=1, column=0, columnspan=1,sticky=W+E)
self.messageBox.config(background='yellow')
Test(root)