<p>当使用<code>grid()</code>布局管理器时,有不同的方法让小部件在Tkinter中对齐。对于同一行上的两个小部件,第一个小部件可以被赋予<code>sticky=E</code>选项,下一个小部件可以被赋予<code>sticky=W</code>。这将把两者推到一起。我已经为前两行的小部件做过了。你知道吗</p>
<p>另一种方法是使整行成为一个嵌套的<code>Frame</code>,其中包含所有小部件。嵌套框架内的布局与包含<code>Frame</code>的位置无关。我是为最后的四个小部件做的。你知道吗</p>
<p>虽然它与路线或布局无关,我还将<code>display_music()</code>和<code>divide()</code>函数更改为<code>Button</code>回调(使用它们接受的<code>command=xxx</code>参数),而不是通过<code>bind()</code>将它们连接到特定小部件(这意味着它们将不再接收您无论如何都不使用的<code>event</code>参数),使它们成为事件处理程序。你知道吗</p>
<pre><code>from tkinter import *
# Button callbacks (which are NOT event handlers)
def display_music():
music = favoriteMusician.get()
outputEntry.delete(0, 'end')
outputEntry.insert(0, 'Your favorite musician is %s' % music)
def divide():
answer = str(int(num1Entry.get())/int(num2Entry.get()))
divideEntry.delete(0, 'end')
divideEntry.insert(0, answer)
root = Tk()
# Row 0
label1 = Label(root, text='Who is your favorite musician?')
label1.grid(row=0, column=0, sticky=E)
favoriteMusician = Entry(root)
favoriteMusician.grid(row=0, column=1, sticky=W)
# Row 1
b1 = Button(root, text='Output:', command=display_music)
b1.grid(row=1, column=0, sticky=E)
#b1.bind('<Button-1>', display_music)
outputEntry = Entry(root, width=30)
#outputEntry.grid(row=1, column=1, columnspan=2, sticky=W)
outputEntry.grid(row=1, column=1, sticky=W)
# Row 2
mathFrame = Frame(root)
mathFrame.grid(row=2, column=0, columnspan=4)
num1Entry = Entry(mathFrame)
num1Entry.grid(row=2, column=0, sticky=W)
label2 = Label(mathFrame, text='/')
label2.grid(row=2, column=1, sticky=W)
num2Entry = Entry(mathFrame)
num2Entry.grid(row=2, column=2, sticky=W)
b2 = Button(mathFrame, text='=', command=divide)
b2.grid(row=2, column=3, sticky=W)
#b2.bind('<Button-1>', divide)
divideEntry = Entry(mathFrame)
divideEntry.grid(row=2, column=4, sticky=W)
root.mainloop()
</code></pre>
<p>以下是跑步的感觉:</p>
<p><a href="https://i.stack.imgur.com/9MnGO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9MnGO.png" alt="screenshot of GUI using revised code"/></a></p>
<p>以下是一些相关Tkinter文章的链接:</p>
<p><a href="http://effbot.org/tkinterbook/grid.htm" rel="nofollow noreferrer">The Tkinter Grid Geometry Manager</a>作者:弗雷德里克·伦德(Tkinter的作者)<br/>
<a href="http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html" rel="nofollow noreferrer">Tkinter 8.5 reference: a GUI for Python</a>作者:约翰·希普曼(新墨西哥技术计算机中心)</p>