Почему мои кнопки и рамка в Python Tkinter не располагаются в правильных геометрических координатах, несмотря на то, что они дают правильные размеры - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь создать окно для моей игры в крестики-нолики.В главном корневом окне (размеры-> высота = 700, ширина = 600) я создал два кадра.

1: верхняя рамка называется ActionArea и имеет размеры-> Высота = 600 и ширина = 600

2: нижняя рамка называется StatArea и имеет размеры-> Высота = 100 и ширина = 600

В верхнюю рамку я поместил 9 кнопок, каждая из которых имеет одинаковый размер 200 * 200

Это были мои ожидания: My expectations on how the Window would look

Это реальность, с которой я сталкиваюсь при запуске кода: this is the output I am getting on running my code

Это соответствующая частьКод:

root=tk.Tk()
root.title("TIC TAC TOE")
root.geometry("600x700")


#creating two frames
ActionArea=tk.Frame(root,height=600,width=600,bg="AliceBlue")
StatArea=tk.Frame(root,height=100,width=600,bg="RoyalBlue")

#placing the frames onto root window
ActionArea.grid(row=0,column=0)
StatArea.grid(row=1,column=0)

#creating the buttons
b1=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b2=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b3=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b4=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b5=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b6=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b7=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b8=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")
b9=tk.Button(ActionArea,text="", height=200,width=200,bg="AliceBlue")

#packing the buttons
b1.grid(row=0,column=0)
b2.grid(row=0,column=1)
b3.grid(row=0,column=2)
b4.grid(row=1,column=0)
b5.grid(row=1,column=1)
b6.grid(row=1,column=2)
b7.grid(row=2,column=0)
b8.grid(row=2,column=1)
b9.grid(row=2,column=2)

. Много сомнений.Я точно определил размер каждой кнопки до 200 * 200, чтобы уместить ее верхнюю рамку размером 600 * 600. Однако, как вы можете видеть, кнопка становится смехотворно большой.Почему это происходит?

1 Ответ

0 голосов
/ 02 марта 2019

Это именно потому, что вы измерили кнопку с помощью height=200, width=200.tkinter.Button высота и ширина не всегда в пикселях.Из документации :

height =
Высота кнопки.Если кнопка отображает текст, размер указывается в текстовых единицах. Если кнопка отображает изображение, размер указывается в пикселях (или единицах экрана).Если размер не указан, он рассчитывается на основе содержимого кнопки.(высота / высота)

width =
Ширина кнопки.Если кнопка отображает текст, размер указывается в текстовых единицах. Если кнопка отображает изображение, размер указывается в пикселях (или единицах экрана).Если размер опущен или равен нулю, он рассчитывается на основе содержимого кнопки.(ширина / ширина)

Ваши кнопки содержат text = "", поэтому размер указывается в текстовых единицах, которые больше пикселей.

Обычно вам не нужно устанавливать размеркаждого кадра явно, особенно если вы хотите, чтобы все они были одинакового размера.Посмотрите здесь например.

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