Tkinter
Установка - оказался встроенным.
Импорт:
import tkinter
from tkinter import *
import tkinter as tk
Общая последовательность действий:
- Создать главное окно.
- Создать виджеты и выполнить конфигурацию их свойств (опций).
- Определить события, то есть то, на что будет реагировать программа.
- Описать обработчики событий, то есть то, как будет реагировать программа.
- Расположить виджеты в главном окне.
- Запустить цикл обработки событий.
Приложение в окне, назваемое главным. Создается главное окно от класса Tk модуля tkinter . Переменную,связываемую с объектом, часто называют root (корень) tkinter.
root = Tk()
Пример окна:
from tkinter import *
root = Tk()
ent = Entry(root,width=20) #поле ввода
but = Button(root, text="Преобразовать") #кнопка
lab = Label(root, width=20, bg='black', fg='white') #метка
def str_to_sort_list(event):
s = ent.get()
lab['text'] = s
but.bind('<Button-1>', str_to_sort_list) #событие левой кнопки мыши
ent.pack() #размещение элементов при помощи менеджера геометрии
but.pack()
lab.pack()
root.mainloop() #основной цикл
Объектно-ориентированный подход
from tkinter import *
class Block:
def __init__(self, master, func):
self.ent = Entry(master, width=20)
self.but = Button(master, text="Преобразовать")
self.lab = Label(master, width=20, bg='black', fg='white')
self.but['command'] = self.str_to_sort
#self.but['command'] = getattr(self, func) #вариант с передачей имени функции
self.ent.pack()
self.but.pack()
self.lab.pack()
def str_to_sort(self):
s = self.ent.get()
self.lab['text'] = s
def str_reverse(self):
s = self.ent.get()
self.lab['text'] = s + '1'
root = Tk()
first_block = Block(root)
#first_block = Block(root, 'str_to_sort')
#second_block = Block(root, 'str_reverse')
root.mainloop()
События в этом случае определяются по-другому.