Tkinter - grid_bbox () как это работает? - PullRequest
0 голосов
/ 22 апреля 2020

Простой вопрос. В тк документах сказано в 4.2. Другие методы управления сеткой: "w.grid_bbox (0, 0, 1, 1) Возвращает 4-кортеж, описывающий ограничивающую рамку некоторых или всех систем сетки в виджете w. Первые два возвращенных числа - это координаты x и y верхнего левого угла области, а вторые два числа - это ширина и высота. "

, но я не могу ничего получить в приведенном ниже примере. Пожалуйста, что не так и как использовать grid_bbox ()?

from tkinter import *

#criar um objeto window
w = Tk()
w.title('Uso de grid_bbox')
l1 = Label(w, text='Título', font='Verdana 16', width="20",height="3", bg="red")
l1.grid(row = 0, column = 0)
l2 = Label(w, text='Autor',font='Verdana 16', width="20",height="3", bg="yellow")
l2.grid(row = 0, column = 1)
l3 = Label(w, text='Título', font='Verdana 16', width="20",height="3", bg="red")
l3.grid(row = 1, column = 1)
l4 = Label(w, text='Autor',font='Verdana 16', width="20",height="3", bg="yellow")
l4.grid(row = 1, column = 0)


w.grid_bbox(0,0,1,1)

w.mainloop()

1 Ответ

0 голосов
/ 22 апреля 2020

Пока tkinter не сможет нарисовать виджеты на экране, он не сможет вычислить координаты, поскольку окончательные координаты зависят от многих факторов. Вам нужно подождать, пока не начнется mainloop, или заставить окно рисовать, позвонив w.update(), прежде чем w.grid_bbox(0,0,1,1).

Конечно, другая проблема заключается в том, что вы звоните grid_bbox но затем выбрасывает то, что возвращает. Если вы ожидаете увидеть что-то распечатанное, вам нужно использовать функцию print:

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