Python 3: положения кнопки и ввода текста в текстовом поле - PullRequest
0 голосов
/ 11 декабря 2018

Я новичок в 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 голосов
/ 11 декабря 2018

Обычный способ создания сложных макетов - это группирование связанных виджетов вместе с фреймами.В приведенном ниже примере я группирую записи в одном кадре и кнопку в другом.Это облегчает управление вертикальным расположением.

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().См. Менеджер геометрии сетки Tkinter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...