Tkinter

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Назначение[править | править вики-текст]

Библиотека предназначена для организации диалогов в программе с помощью оконного графического интерфейса (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 *
 
tk = Tk()
tk.title("Hello World!")
tk.geometry('300x40')
def button_clicked():
    print("Hello World!")
 
button = Button(tk, text="Press Me", command=button_clicked)
button.pack(fill=BOTH)
 
tk.mainloop()

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

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

from Tkinter import *

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

Следующая команда создаёт фрейм-окно (далее окно):

tk = Tk()

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

tk.title("Hello World!")

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

tk.geometry('300x40')

Далее следует определение обработчика события «нажата кнопка мыши». Событие относится элементу Button(Кнопка). Типы событий и графические элементы определены в графической библиотеке Tkinter.

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]