У меня есть программа, которая имеет две кнопки. Я пытаюсь изменить положение этих кнопок так, чтобы между ними было пространство, потому что в данный момент они находятся прямо друг над другом. что я должен сделать, чтобы изменить их положение?

def menu():
    import tkinter
    window=tkinter.Tk()
    window.title('Lightning Parties')
    window.configure(background='turquoise')
    lbl=tkinter.Label(window, text='Welcome to Lightning Parties!', fg='purple', bg='turquoise', font=('comicsans', 14))
    lbl.pack()

    #here are the buttons
    lbl=tkinter.Button(window, text='Returning customer options', fg='white',   bg='purple', font=('comicsans', 12),command=combine_funcs(window.destroy, customer_login))
    lbl.pack()

    lbl=tkinter.Button(window, text='Register as a customer', fg='white', bg='purple', font=('comicsans', 12),command=combine_funcs(window.destroy, customer_details))
    lbl.pack()

Любая помощь будет с благодарностью, спасибо!

4
brenda 10 Янв 2017 в 19:57

4 ответа

Лучший ответ

На самом деле в предыдущем семестре я также подал заявку на Tkinter, которая является проектом, предоставленным нам учителем. Поэтому я захожу на сайт учебников по Python и нахожу три способа размещения виджетов на экране вывода. Три метода

 1. Pack()
 2. Grid()
 3. Place() #the best method over Pack() and Grid()

Метод Place () принимает координаты в виде x и y. Смотрите эту ссылку для получения дополнительной информации https://www.tutorialspoint.com/python/python_gui_programming.htm

https://www.tutorialspoint.com/python/tk_place.htm

См. нижнюю часть страницы данной ссылки. Метод Place () определяется с соответствующими аргументами. Я предпочту метод Place (), а не Pack () и Grid (), потому что он работает как CSS, как мы используем в html, потому что он принимает значение (ширина, высота) и размещает ваш виджет в соответствии с тем, где вы хотите.

Если вы найдете ответ, мы будем благодарны.

5
babygame0ver 25 Май 2017 в 09:49

Чтобы увеличить расстояние по вертикали между кнопками, используйте аргумент pady в методе pack: lbl.pack(pady=10).

Для горизонтального расстояния есть аргумент padx. Это также работает с методом grid.

0
j_4321 10 Янв 2017 в 17:23

Я бы прокомментировал другие ответы, но не имею представителя.
Ответы, предлагающие методы pad, могут быть не совсем такими, как вы хотите. pad создает дополнительное пространство между границей кнопки и ее содержимым, поэтому ее использование только увеличит размер самой кнопки.
Я могу ошибаться, но я не думаю, что это повлияет на расстояние между самими виджетами.

-1
EriktheRed 10 Янв 2017 в 17:35

Мой идет так:

object1 = Tk()
actionBtn = Button(object1, text="Enter", width=15, height=2, command=quit).place(x=0, y=0)

#.place() is the best thing to use, x and y determine the location in terms of geometry.

Вы даже можете добавить изображение с расширением .png и выглядит так:

buttonEnter = PhotoImage(file="buttonEnter.png") #image file must be inserted 
buttonEnter1 = Button(object1, image=buttonEnter, width=20, height=4).place(x=0, y=0) 
1
j_4321 18 Дек 2018 в 12:16