Как сделать кнопки ближе? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь сделать простой калькулятор, используя Tkinter, но кнопки слишком далеко друг от друга.Это мой полный код:

from Tkinter import *
root = Tk()
root.title("Calculadora")

display = Entry(root, font = ("Simplified Arabian Fixed", 30), bg = "black", fg = "white", bd = 30).grid(columnspan = 4)

Button7 = Button(root, bd = 10, text= "7", padx = 16, font = ("Simplified Arabian Fixed", 20), bg = "black", fg = "white").grid(column = 0, row = 1)

Button8 = Button(root, bd = 10, text = "8", padx = 16, font = ("Simplified Arabian Fixed", 20), bg = "black", fg = "white").grid(column = 1, row = 1)

Division = Button(root, bd = 10, text = "/", padx = 16, font = ("Simplified Arabian Fixed", 20), bg = "black", fg = "white").grid(column = 2, row = 1)

root.mainloop()

Это происходит

Есть ли способ исправить это?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Используйте sticky="ew" и настройте padx в каждом grid(...) для кнопок, чтобы расширить кнопки и заполнить ячейку сетки.Также вы присвоили результат grid(...) всем переменным кнопки, которые всегда будут None.Поэтому отделите функцию grid(...) от функции создания, например:

Button7 = Button(root, bd=10, text="7", padx=16, font=("Simplified Arabian Fixed", 20), bg="black", fg="white")
Button7.grid(row=1, column=0, sticky="ew", padx=2)
0 голосов
/ 17 декабря 2018

Этот эффект объясняется тем, что запись шире, чем три кнопки.Вы можете установить меньшую ширину, а затем позволить менеджеру геометрии сетки расширить его, чтобы покрыть ширину кнопок с помощью sticky = 'ew'.Также вы можете установить justify = 'right' в записи, или это будет выглядеть забавно.

Я включил некоторый текст в приведенный ниже пример:

from Tkinter import *
root = Tk()
root.title("Calculadora")

txt = StringVar()   # StringVar to hold entry text
txt.set('123456')   # Set StringVar

display = Entry(root, font = ("Simplified Arabian Fixed", 30), 
                bg = "black", fg = "white", bd = 30, textvariable = txt,
                # Set width and justify for entry + sticky to fill available space
                width = 1, justify = 'right').grid(columnspan = 4, sticky = 'ew')

Button7 = Button(root, bd = 10, text= "7", padx = 16,
                 font = ("Simplified Arabian Fixed", 20),
                 bg = "black", fg = "white").grid(column = 0, row = 1)

Button8 = Button(root, bd = 10, text = "8", padx = 16,
                 font = ("Simplified Arabian Fixed", 20),
                 bg = "black", fg = "white").grid(column = 1, row = 1)

Division = Button(root, bd = 10, text = "/", padx = 16,
                  font = ("Simplified Arabian Fixed", 20),
                  bg = "black", fg = "white").grid(column = 2, row = 1)

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