=====geometry=====
Tkinter предоставляет различные универсальные методы, одним из которых является метод geometry (). Этот метод используется для установки размеров окна Tkinter, а также для установки положения главного окна на рабочем столе пользователя.
**Окно Tkinter без использования метода геометрии.**
# importing only those functions which are needed
from tkinter import Tk, mainloop, TOP
from tkinter.ttk import Button
# creating tkinter window
root = Tk()
button = Button(root, text = 'Geeks')
button.pack(side = TOP, pady = 5)
mainloop()
{{ :python:оконное_приложение:tkinter:position_and_size.jpg?400 |}}
Как только вы запустите приложение, вы увидите, что положение окна Tkinter находится в северо-западной позиции экрана, и размер окна также мал, как показано в выходных данных.
**Меняем размер окна**
# importing only those functions which
# are needed
from tkinter import Tk, mainloop, TOP
from tkinter.ttk import Button
# creating tkinter window
root = Tk()
# creating fixed geometry of the
# tkinter window with dimensions 150x200
root.geometry('200x150')
button = Button(root, text = 'Geeks')
button.pack(side = TOP, pady = 5)
mainloop()
{{ :python:оконное_приложение:tkinter:changed_size_but_same_position.jpg?400 |}}
После запуска приложения вы увидите, что размер окна Tkinter изменяется, но позиция на экране остается той же.
**Меняем положение окна**
# importing only those functions which
# are needed
from tkinter import Tk, mainloop, TOP
from tkinter.ttk import Button
# creating tkinter window
root = Tk()
# creating fixed geometry of the
# tkinter window with dimensions 150x200
root.geometry('200x150 + 400 + 300')
button = Button(root, text = 'Geeks')
button.pack(side = TOP, pady = 5)
mainloop()
{{ :python:оконное_приложение:tkinter:changed_position_and_size.png?400 |}}
Когда вы запустите приложение, вы увидите, что позиция и размер изменяются. Теперь окно Tkinter появляется в другой позиции (300 смещено по оси Y и 400 смещено по оси X).
Мы также можем передать аргумент переменной в методе geometry, но он должен быть в форме (variable1) x (variable2), иначе это вызовет ошибку.
**Окно по цетру с помощью динамических параметров**
from Tkinter import *
root = Tk()
x = (root.winfo_screenwidth() - root.winfo_reqwidth()) / 2
y = (root.winfo_screenheight() - root.winfo_reqheight()) / 2
root.wm_geometry("+%d+%d" % (x, y))
root.mainloop()
Метод:
def setGeometry(win, winx, winy):#Функция выравнивает окно по центру
x = (win.winfo_screenwidth() / 2 - winx / 2)
y = (win.winfo_screenheight() / 2 - winy / 2)
win.geometry("%dx%d+%d+%d" % (winx, winy, x, y))