Введение в Tkinter

Содержание

Слайд 2

tkinter – библиотека, в которую включены виджеты для языка программирования Python .

tkinter – библиотека, в которую включены виджеты для языка программирования Python

.
Слайд 3

Импорт библиотеки Создание главного окна Создание виджет Установка их свойств Определение

Импорт библиотеки
Создание главного окна
Создание виджет
Установка их свойств
Определение событий
Определение обработчиков событий
Расположение виджет

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

Этапы получения программы с GUI

Слайд 4

Способы импортирования: import tkinter from tkinter import * Предпочтительно пользоваться вторым

Способы импортирования:
import tkinter
from tkinter import *
Предпочтительно пользоваться вторым
способом, т. к. это

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

Импорт модуля tkinter

Слайд 5

Любое пользовательское приложение заключено в окно, которое можно назвать главным, т.к.

Любое пользовательское приложение заключено в окно, которое можно назвать главным, т.к.

в нем располагаются все остальные виджеты. Объект окна верхнего уровня создается при обращении к классу Tk модуля tkinter.
Переменную связанную с объектом-окном принято называть root (хотя понятно, что можно назвать как угодно, но так уж принято).
Вторая строчка кода:

Создание главного окна

Слайд 6

Кнопка создается при обращении к классу Button модуля tkinter. Объект кнопка

Кнопка создается при обращении к классу Button модуля tkinter. Объект кнопка

связывается с какой-нибудь переменной. У класса Button (как и всех остальных классов, за исключением Tk) есть обязательный параметр — объект, которому кнопка принадлежит (кнопка не может "быть ничейной"). Единственное окно (root), является аргументом, передаваемым в класс при создании объекта-кнопки:

Создание виджет

Слайд 7

У кнопки много свойств: размер, цвет фона и надписи и др.

У кнопки много свойств: размер, цвет фона и надписи и др.

Установим всего одно свойство — текст надписи (text):

Установка свойств виджет

Слайд 8

Предположим, что задача кнопки вывести какое-нибудь сообщение в поток вывода, используя

Предположим, что задача кнопки вывести какое-нибудь сообщение в поток вывода, используя

функцию print. Делать она это будет при нажатии на нее левой кнопкой мыши.
Алгоритм (действия) оформляют в виде функции, а затем вызывают, когда они понадобятся.

Определение событий и их обработчиков

*Параметр event – это какое-либо событие

Слайд 9

Событие нажатия левой кнопкой мыши выглядит так: . Требуется связать это

Событие нажатия левой кнопкой мыши выглядит так: .
Требуется связать это событие

с обработчиком (функцией printer).
Для связи предназначен метод bind. Синтаксис связывания события с обработчиком выглядит так:
Слайд 10

Влюбом приложении виджеты не разбросаны по окну как попало, а хорошо

Влюбом приложении виджеты не разбросаны по окну как попало, а хорошо

организованы, интерфейс продуман до мелочей и обычно подчинен определенным стандартам. Для того чтобы отобразить кнопку в окне используют метод pack.
Если не вставить эту строчку кода, то кнопка в окне так и не появится, хотя она есть в программе.

Размещение виджет

Слайд 11

mainloop – метод вызова главного окна Данная строчка кода должна быть

mainloop – метод вызова главного окна
Данная строчка кода должна быть всегда

в конце скрипта!

Отображение главного окна

Слайд 12

from tkinter import * def printer(event): print ("Как всегда очередной 'Hello

from tkinter import *
def printer(event):
print ("Как всегда очередной 'Hello

World!'")  
root = Tk()
but = Button(root)
but["text"] = "Печать" but.bind("",printer)
but.pack()
root.mainloop()

Код программы

Слайд 13

При программировании графического интерфейса пользователя более эффективным оказывается объектно-ориентированный подход. Поэтому

При программировании графического интерфейса пользователя более эффективным оказывается объектно-ориентированный подход. Поэтому

многие «вещи» оформляются в виде классов.
Слайд 14

from tkinter import * class But_print: def _init_(self): self.but = Button(root)

from tkinter import *
class But_print:
def _init_(self):
self.but = Button(root)


self.but["text"] = "Печать"
self.but.bind("",
self.printer) self.but.pack()
def printer(self,event):
print ("Как всегда очередной 'Hello World!'")
root = Tk()
obj = But_print()
root.mainloop()

Пример: