Skip to main content

Tkinter

Установка - оказался встроенным.

Импорт: 

import tkinter
from tkinter import *
import tkinter as tk

Общая последовательность действий:

  • Создать главное окно.
  • Создать виджеты и выполнить конфигурацию их свойств (опций).
  • Определить события, то есть то, на что будет реагировать программа.
  • Описать обработчики событий, то есть то, как будет реагировать программа.
  • Расположить виджеты в главном окне.
  • Запустить цикл обработки событий.

Создается главное окно от класса Tk модуля 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()

События в этом случае определяются по-другому (через свойство).