title: How to center a tkinter widget in a sticky frame
body: <p>I'm writing a game in python3 using <strong>tkinter</strong>, and I'm having a little trouble getting the grid to do what I want it to do. I've looked through at least five pages of google results including stack overflow answers for every variant of how to ask this question I can think of. I finally just gave in and created this account to ask about this. </p>
  
  <p>What I've got: A <strong>button</strong> (newGameButton) and a <strong>label</strong> (messageBox) centered in a <strong>frame</strong> (topBar) which is itself centered but does not span the entire window (contentFrame) horizontally.</p>
  
  <p>The best I've managed to get (by putting <code>sticky=W+E</code> on topBar): Frame now spans the whole window, button and label remain the same size (sticky on the label didn't do a thing, and sticky on the button only made it as wide as the label), and are now stuck against the left side of the topBar.</p>
  
  <p>What I want it to do: have the frame span the whole window, with the label also spanning the whole window, and the button centered.</p>
  
  <p>The reason topBar is <code>columnspan=23</code> is that the rest of the stuff in the content frame is 23 columns wide (including the 0 column).
  The reason I have the button and label in a frame is that I'd like that entire box surrounding them to have a border effect.</p>
  
  <p>Code:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Has anyone got any ideas? I'm pretty desperate at this point.</p>