как узнать размер окна Tkinter?

Написал программу и хочу сделать исполняемый файл с помощью pyinstaller, но к сожалению, при запуске программы, некоторые размеры окон неверны, т.к. я задаю геометрию окна таким образом: self.geometry('+{}+{}'.format(w, h)) В данном примере главное то, что размеры окна задаются автоматически.

При запуске программы через IDEL всё отображается правильно, но когда запускаю .exe файл, то размеры съезжают. Чтобы всё было хорошо, мне надо узнать автоматические размеры заданные окну. Как это можно реализовать?


Ответы (3 шт):

Автор решения: n1tr0xs

Используйте метод geometry() класса tkinter.Tk(), пример:

import tkinter as tk
root = tk.Tk()
print(root.geometry())
→ Ссылка
Автор решения: Nezerix

Можно растянуть невидимый виджет на весь экран и измерить его размеры с помощью winfo_height и winfo_width. Приведу пример для кнопки:

import tkinter as tk
   
def func():
    x = button_place.winfo_width()
    y = button_place.winfo_height()
    print(x, y)
  
  
root = tk.Tk()
root.geometry('600x500')
button_place = tk.Button(root, text='', font='Times 15', command=func)
button_place.place(w=600, h=500)
  
root.mainloop()

Но это обычно используется для определения размеров виджетов. Для определения экрана нужна просто root.geometry(). Первый пример привел просто для дополнительной информации, может Вам понадобиться

→ Ссылка
Автор решения: Евгений В

Гораздо проще всё, используй метод wm_maxsize() для определения размера экрана при создании объекта Tk()

→ Ссылка