Модуль tkinter. Урок №1 — Введение
На этом уроке мы познакомимся с штатным средством построения графического интерфейса (GUI) программы, написанного на языке python (мы будем рассматривать третью версию питона).
Существует также и другие графические библиотеки, позволяющих создавать программы с улучшенным графическим интерфейсом и богатым набором компонентов — PySide, wxPython, PyQt, PyGT, но все они требуют отдельную установку и достаточно сложны в освоении новичкам.
Модуль tkinter хотя и обладает скромными возможностями и непритязательным внешним видом компонентов, зато программа с этим модулем будет запускаться на любой платформе (Win, Lin, Mac), где установлен python.
В этом задании мы создадим простейшее графическое приложение с кнопкой, выводящей текст.
- Итак, приступим. Наберем следующий код на питоне:
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()