Tkinter «Hello, World!» в Python — инструкция по созданию

В этом уроке рассмотрим инструкцию, как создать программу Tkinter «Hello, World!» в Python.

Содержание

Создание окна

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

import tkinter as tk

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

Если вы запустите программу, вы увидите следующее окно:

Как отобразить окно на экране

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

  • Сначала импортируем модуль tkinter как tk в программу:
import tkinter as tk
  • Во-вторых, создайте экземпляр класса tk.Tk, который создаст окно приложения:
root = tk.Tk()

По соглашению, главное окно в Tkinter называется root. Но вы можете использовать любое другое имя, например main.

  • В-третьих, вызовите метод mainloop() объекта главного окна:
root.mainloop()

Метод mainloop() обеспечивает видимость главного окна на экране.

Если не вызвать метод mainloop(), главное окно отобразится и исчезнет почти мгновенно — слишком быстро, чтобы заметить его появление.

Кроме того, метод mainloop() обеспечивает продолжение отображения и работы главного окна до тех пор, пока вы его не закроете.

Обычно в программе Tkinter вызов метода mainloop() выполняется последним оператором после создания виджетов.

Поиск неисправностей

Модуль tkinter — встроенный модуль Python. Но иногда, например, в Ubuntu вы можете столкнуться со следующей ошибкой:

ImportError: No module named Tkinter

В этом случае вам необходимо установить модуль tkinter с помощью следующей командной строки:

sudo apt-get install python3-tk

Отображение метки

Теперь давайте поместим компонент в окно. В Tkinter такие компоненты называются виджетами.

Следующий код добавляет виджет метки в корневое окно:

import tkinter as tk


root = tk.Tk()

# place a label on the root window
message = tk.Label(root, text="Hello, World!")
message.pack()

# keep the window displaying
root.mainloop()

Если вы запустите программу, вы увидите следующий вывод:

Tkinter Привет, мир!

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

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

widget = WidgetName(master, **options)

В этом синтаксисе:

  • master — это родительское окно или фрейм, в котором вы хотите разместить виджет.
  • options — это один или несколько ключевых аргументов, которые определяют конфигурации виджета.

В программе следующий код создает виджет Label, размещенный в корневом окне:

message = tk.Label(root, text="Hello, World!")

Следующий оператор размещает метку в главном окне:

message.pack()

Обратите внимание, что вы узнаете больше о методе pack() позже. Если вы не вызовете метод pack(), Tkinter все равно создаст виджет. Однако виджет не будет виден.

Исправление размытия пользовательского интерфейса в Windows

Если вы обнаружили, что текст и пользовательский интерфейс в Windows размыты, вы можете исправить это с помощью библиотеки Python ctypes.

  • Сначала импортируйте модуль ctypes:
from ctypes import windll
  • Во-вторых, вызовите функцию SetProcessDpiAwareness():
windll.shcore.SetProcessDpiAwareness(1)

Если вы хотите, чтобы приложение работало на таких платформах, как Windows, macOS и Linux, вы можете поместить приведенный выше код в блок try…finally:

try:
    from ctypes import windll

    windll.shcore.SetProcessDpiAwareness(1)
finally:
    root.mainloop()

В Windows код в блоке try будет работать правильно. Однако в macOS или Linux он не будет работать, но код в блокировке finally всегда будет выполняться, что отображает главное окно.

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

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