Модуль tkinter. Урок №1 — Введение

На этом уроке мы познакомимся с штатным средством построения графического интерфейса (GUI) программы, написанного на языке python (мы будем рассматривать третью версию питона).

Существует также и другие графические библиотеки, позволяющих создавать программы с улучшенным графическим интерфейсом и богатым набором компонентов — PySide, wxPython, PyQt, PyGT, но все они требуют отдельную установку и достаточно сложны в освоении новичкам.

Модуль tkinter хотя и обладает скромными возможностями и непритязательным внешним видом компонентов, зато программа с этим модулем будет запускаться на любой платформе (Win, Lin, Mac), где установлен python.

В этом задании мы создадим простейшее графическое приложение с кнопкой, выводящей текст.

  1. Итак, приступим. Наберем следующий код на питоне:
from tkinter import *
root=Tk()
button1=Button(root,text='Вывод текста')
button1.pack()
root.mainloop()

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

Давайте разберемся, что делает данный код:

Строка from tkinter import * подключает модуль;

Строка root=Tk() создает окно приложения;

Строка button1=Button(root,text='Вывод текста') создает объект класса Button, то есть обычную кнопку;

Строка button1.pack() размещает эту кнопку в окне приложения. Метод pack представляет самый простой способ размещения, в дальнейшем мы узнаем и другие способы.

Строка root.mainloop() запускает программу в цикле.

2. Если вы пробовали нажимать по кнопке, то заметили, что при этом ничего не происходит. Сделаем так, что при нажатии в терминале (консоли) выводился какой-либо текст, например приветствие. Для этого выше строки инициализации кнопки напишем функцию:

def printText(event):
    print('Привет!') 

А теперь свяжем нашу кнопку с этой функций с помощью метода bind (строка ниже инициализации кнопки):

button1.bind('<Button-1>',printText)

Проверьте, при нажатии левой кнопкой мыши по кнопке в терминале печатается 'Привет!'

3. Осталось поменять размеры и заголовок окна:

root.title("Моя первая программа на tk")
root.geometry('300x100')

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

# подключаем модуль tkinter
from tkinter import *

# создаем главное окно
root=Tk()
root.title("Моя первая программа на tk")
root.geometry('300x100')

# функция, выводящая приветствие
def printText(event):
    print('Привет!')

# создаем объект типа кнопка (Button)
button1=Button(root,text='Вывод текста',width=12, height=2)

# связываем нажатие ЛКМ по кнопке с функцией вывода приветствия

button1.bind('<Button-1>',printText)

# отображаем кнопку в главном окне (это самый простой способ)
button1.pack()

# отобразим программу в бесконечном цикле, всегда в конце программы
root.mainloop()