Tkinter Window в Python — управление атрибутами окон

В этом уроке вы узнаете, как управлять различными атрибутами окна Tkinter в Python.

Начнем с простой программы, состоящей из окна:

import tkinter as tk

root = tk.Tk()
root.mainloop()

Выход:

Управление атрибутами окна Tkinter

Корневое окно имеет заголовок по умолчанию tk. Оно также имеет три системные кнопки, включая «Свернуть», «Развернуть» и «Закрыть».

Давайте узнаем, как изменить атрибуты корневого окна.

Содержание

Изменение заголовка окна

Чтобы изменить заголовок окна, используйте метод title() следующим образом:

window.title(new_title)

Например, следующий код изменяет заголовок корневого окна на «Tkinter Window Demo»:

import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')

root.mainloop()

Выход:

Как изменить заголовок окна

Чтобы получить текущий заголовок окна, используйте метод title() без аргументов:

title = window.title()

Изменение размера и местоположения окна

В Tkinter положение и размер окна на экране определяются его геометрией.

Ниже показана спецификация геометрии:

widthxheight±x±y

Геометрия окна Tkinter

В этой спецификации:

  • Ширина представляет собой ширину окна в пикселях.
  • Высота представляет собой высоту окна в пикселях.
  • Параметр x обозначает горизонтальное положение окна. Например, значение +50 означает, что левый край окна должен быть расположен на расстоянии 50 пикселей от левого края экрана. И наоборот, значение -50 означает, что правый край окна должен быть расположен на расстоянии 50 пикселей от правого края экрана.
  • Параметр y обозначает вертикальное положение окна. Например, значение +50 означает, что верхний край окна должен быть расположен на 50 пикселей ниже верхней части экрана. И наоборот, значение -50 означает, что нижний край окна должен быть на 50 пикселей выше нижней части экрана.

Чтобы изменить размер и положение окна, используйте метод geometry():

window.geometry(new_geometry)

В следующем примере размер окна изменяется на 600×400, а положение окна — на 50 пикселей от верхнего и левого края экрана:

import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')

root.mainloop()

Иногда вам может понадобиться центрировать окно на экране. Следующая программа иллюстрирует, как это сделать:

import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window - Center')

window_width = 300
window_height = 200

# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)

# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')


root.mainloop()

Как это работает.

  • Сначала получите ширину и высоту экрана с помощью методов winfo_screenwidth() и winfo_screenheight().
  • Во-вторых, вычислите координату центра на основе ширины и высоты экрана и окна.
  • Наконец, задайте геометрию для корневого окна с помощью метода geometry().

Если вы хотите получить текущую геометрию окна, вы можете использовать метод geometry() без указания каких-либо аргументов:

window.geometry()

Выбор изменения размера

По умолчанию вы можете изменять ширину и высоту окна. Чтобы предотвратить изменение размера окна, вы можете использовать метод resizable():

window.resizable(width,height)

Метод resizable() имеет два параметра, которые определяют, можно ли изменять размер ширины и высоты окна.

Ниже показано, как сделать окно фиксированного размера:

import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)

root.mainloop()

Выход:

Выбор фиксированного размера окна

Если размер окна можно изменять, вы можете указать минимальный и максимальный размеры с помощью методов minsize() и maxsize():

window.minsize(min_width, min_height)
window.maxsize(min_height, max_height)

Прозрачность

Tkinter позволяет указать прозрачность окна, установив его альфа-канал в диапазоне от 0,0 (полностью прозрачный) до 1,0 (полностью непрозрачный):

window.attributes('-alpha',0.5)

Следующий пример иллюстрирует окно с прозрачностью 50%:

import tkinter as tk

root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.attributes('-alpha', 0.5)

root.mainloop()

Выход:

Пример прозрачности окна

Порядок расположения окон

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

Чтобы гарантировать, что окно всегда находится наверху в порядке размещения, можно использовать атрибут -topmost следующим образом:

window.attributes('-topmost', 1)

Чтобы переместить окно вверх или вниз по стеку, можно использовать методы lift() и lower():

window.lift()
window.lift(another_window)

window.lower()
window.lower(another_window)

Следующий пример помещает корневое окно поверх всех остальных окон. Другими словами, корневое окно всегда находится сверху:

import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(0, 0)
root.attributes('-topmost', 1)

root.mainloop()

Изменение значка по умолчанию

Окно Tkinter отображает значок по умолчанию. Чтобы изменить этот значок по умолчанию, выполните следующие действия:

  • Подготовьте изображение в формате .ico. Если у вас есть изображение в других форматах, например png или jpg, вы можете конвертировать его в формат .ico. Существует множество онлайн-инструментов, которые позволяют сделать это довольно легко.
  • Поместите значок в папку, доступную из программы.
  • Вызовите метод iconbitmap() объекта окна.

Следующая программа иллюстрирует, как изменить значок по умолчанию на новый:

import tkinter as tk


root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(False, False)
root.iconbitmap('./assets/pythontutorial.ico')

root.mainloop()

Выход:

Окно Tkinter — настраиваемый значок

Если вы хотите использовать указанный выше значок, вы можете загрузить его на свой компьютер:

Новый значок

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *