Измерения размера окна и виджета в Python - PullRequest
0 голосов
/ 28 августа 2018

Кто-нибудь знает, в каких единицах измерения проводятся в объектах tkinter?

Например:

ws='400' #i am assuming these are in pixels
hs='400'
root=tk.Tk()
root.geometry(ws+'x'+hs)

...

self.w1=tk.Label(self.parent,width=int(int(ws)*5/8) #The width here probably isn't in pixels
self.w2=tk.Button(self.parent,width=int(int(ws)*3/8)

Если ширина в виджетах «Метка» и «Кнопка» также измерялась в пикселях, это должно соответствовать им в пределах окна, независимо от его ширины. Но это не так. Вместо этого я экспериментировал и обнаружил, что деление ширины на 10 для одного виджета и 25 для другого делает свое дело. Так в каких единицах измеряется какая-либо из этих величин?

1 Ответ

0 голосов
/ 28 августа 2018

Это зависит от виджета, а также от того, как виджет настроен. Для виджетов Label и Button width и height относятся к числу символов среднего размера (внутренне я считаю, что он использует ширину и высоту нулевого символа). Если вы добавляете изображение к метке или кнопке, ширина относится к числу пикселей.

Как правило, вы получите лучшие результаты, избегая жестко заданных значений пикселей. Tkinter действительно хорошо умеет вычислять подходящий размер для виджетов, а затем помещать их в окно.

...