WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Tkinter (от англ. Tk interface) — кросс-платформенная графическая библиотека на основе средств Tk (широко распространённая в мире GNU/Linux и других UNIX‐подобных систем, портирована также и на Microsoft Windows), написанная Стином Лумхольтом (Steen Lumholt) и Гвидо ван Россумом[1]. Входит в стандартную библиотеку Python.

Tkinter — это свободное программное обеспечение, распространяемое под Python-лицензией[2] (англ.).

Назначение

Библиотека предназначена для организации диалогов в программе с помощью оконного графического интерфейса (GUI). В составе библиотеки присутствуют общие графические компоненты:

  • Toplevel

Окно верхнего уровня (корневой виджет)

  • Tk
  • Frame

Рамка. Содержит в себе другие визуальные компоненты

  • Label

Этикетка. Показывает некоторый текст или графическое изображение

  • Entry

Поле ввода текста

  • Canvas

Холст. Может использоваться для вывода графических примитивов, например, для построения графиков

  • Button

Кнопка. Простая кнопка для выполнения команды и других действий

  • Radiobutton

Переключатель. Представляет одно из альтернативных значений некоторой переменной. Обычно действует в группе. Когда пользователь выбирает какую-либо опцию, с ранее выбранного в этой же группе элемента выбор снимается.

  • Checkbutton

Флажок. Кнопка, имеющая два состояния, при нажатии изменяет состояние на противоположное

  • Scale

Шкала. Позволяет задать числовое значение путём перемещения движка

  • Listbox

Список. Показывает список, из которого пользователь может выделить один или несколько элементов

  • Scrollbar

Полоса прокрутки. Может использоваться вместе с некоторыми другими компонентами для их прокрутки

  • OptionMenu
  • Spinbox
  • LabelFrame
  • PanedWindow
  • Menu

Меню. Служит для организации всплывающих (popup) и ниспадающих (pulldown) меню

  • Menubutton

Кнопка-меню. Используется для организации pulldown-меню

  • Message

Сообщение. Аналогично Label, но позволяет заворачивать длинные строки и легко меняет свой размер

  • Text

Форматированный текст. Позволяет показывать, редактировать и форматировать текст с использованием различных стилей, а также внедрять в текст рисунки и окна.

Также следует отметить, что в Python присутствует набор дополнительных средств в модулях:

  • Canvas
  • Dialog
  • FileDialog
  • FixTk
  • ScrolledText
  • SimpleDialog
  • Tix
  • Tkconstants
  • Tkdnd
  • tkColorChooser
  • tkCommonDialog
  • tkFileDialog
  • tkFont
  • tkMessageBox
  • tkSimpleDialog
  • turtle

Пример: программа Hello World

Результат выполнения программы в среде GNOME
from tkinter import *

root = Tk()
root.title("Hello World!")
root.geometry('300x40')

def button_clicked():
    print("Hello World!")

def close():
    root.destroy()
    root.quit()

button = Button(root, text="Press Me", command=button_clicked)
button.pack(fill=BOTH)

root.protocol('WM_DELETE_WINDOW', close)

root.mainloop()

Разбор программы

Приведённый пример демонстрирует простейшее приложение GUI на Python. Первая строка программы импортирует модуль tkinter (до версии 3.1 языка Python название модуля tkinter писалось в коде с прописной буквы — «Tkinter»):

from tkinter import *

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

Следующая команда создаёт корневое (root) окно программы (далее окно):

root = Tk()

Следующая команда меняет заголовок окна:

root.title("Hello World!")

Следующая команда устанавливает размеры окна:

root.geometry('300x40')

Далее следует определение функции-обработчика события «нажата кнопка мыши».

def button_clicked():
    print("Hello World!")

Функция-обработчик события «закрытие главного окна». Она останавливает главный цикл приложения и разрушает главное окно. Без неё закрыть программу можно, лишь если завершить процесс интерпретатора Python. Поскольку функция использует глобальную переменную root, объявление самой функции должно следовать после объявления переменной root.

def close():
    root.destroy()
    root.quit()

Создаем кнопку с текстом «Press Me» и привязываем её к вышеопределенной функции-обработчику:

button = Button(root, text="Press Me", command=button_clicked)

«Упаковываем» созданную кнопку с помощью менеджера компоновки pack. fill=BOTH (также можно fill="both") указывает кнопке занимать все доступное пространство (по ширине и высоте) на родительском виджете root:

button.pack(fill=BOTH)

Привязываем событие закрытия главного окна с функцией-обработчиком close:

root.protocol('WM_DELETE_WINDOW', close)

Запускаем главный цикл приложения:

root.mainloop()

В результате нажатия кнопки в консоли будет выведено сообщение «Hello, World!». Сообщение будет выводиться каждый раз при нажатии кнопки.

См. также

Примечания

  1. Matt Conway, Tkinter Life Preserver (англ.)
  2. Tkinter Overview Архивировано 13 ноября 2013 года. (англ.)

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии