Python 3:按钮和输入文本在文本框中的位置

时间:2018-12-11 06:44:08

标签: python-3.x tkinter

我是python的新手,正在学习创建一个具有两个条目和一个按钮的文本框。

我可以设置两个条目的位置,但是不能设置它们下方按钮的位置。

我尝试使用:

b.place(anchor=S, bordermode=OUTSIDE, height=5, width=10)

,但是按钮完全不动。它位于右下角。

以下是我的代码:

from tkinter import *
root = Tk()

l1 = Label(root, text="Variable_1")
l1.pack( side = LEFT)
e1 = Entry(root, bd = 5)
e1.pack(side = LEFT)

l2 = Label(root, text="Variable_2")
l2.pack( side = LEFT)
e2 = Entry(root, bd = 5)
e2.pack(side = LEFT)

l = Label(root)
def callback():
    x = e1.get()
    y = e2.get()
    print(x)
    print(y)

b = Button(root, text="OK", command=callback)

for widget in (e1, e2, l, b):
    widget.pack()

如何将按钮放在文本框的底部中心

还建议更改条目的位置吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

构建复杂布局的通常方法是将关联的小部件与框架组合在一起。在下面的示例中,我将条目归为一帧,将按钮归为另一帧。这样可以更轻松地控制垂直位置。

from tkinter import *
root = Tk()

top = Frame(root)   # Create frame to hold entrys
top.pack()          # Pack top frame
l1 = Label(top, text="Variable_1")
l1.pack(side=LEFT)
e1 = Entry(top, bd=5)
e1.pack(side=LEFT)

l2 = Label(top, text="Variable_2")
l2.pack(side=LEFT)
e2 = Entry(top, bd=5)
e2.pack(side=LEFT)

l = Label(root)
def callback():
    x = e1.get()
    y = e2.get()
    print(x)
    print(y)

bottom = Frame(root)    # Create frame to hold button
bottom.pack()           # Pack bottom frame
b = Button(bottom, text="OK", command=callback)
b.pack()

您还可以使用grid()几何管理器。参见The Tkinter Grid Geometry Manager