В языке Python модуль, который вы можете использовать для создания графических приложений, называется tkinter (toolkit to interface, набор инструментов для интерфейса).

Наиболее популярные опции для кнопки и их краткое описание приведены в таблице ниже.

Опция

Описание

activebackground

Цвет фона активного элемента

activeforeground

Цвет переднего плана активного элемента

bd

Ширина рамки в пикселах (значение по умолчанию: 2)

bg

Цвет фона

command

Функция, вызываемая при нажатии

fg

Цвет переднего плана

font

Шрифт для метки кнопки

height

Высота кнопки (для текста в количестве строк, для изображений — в пикселах)

highlightcolor

Цвет рамки при наведении

image

Изображение для вывода вместо текста

justify

Вид выравнивания (по левому краю, по центру, по правому краю)

padx

Количество пикселов до края по горизонтали

pady

Количество пикселов до края по вертикали

relief

Вид рельефности рамки (SUNKEN — утопленная, RIDGE — выпуклая

кайма, RAISED — выпуклая, GROOVE — канавка)

state

Состояние (NORMAL — рабочее или DISABLED — отключена)

underline

Порядковый номер символа в тексте, который необходимо

подчеркнуть (значение по умолчанию: 1)

width

Ширина кнопки (в символах для текста, в пикселах для изображения)

wraplength

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

В программе на Python можно выводить сообщения пользователю в виде диалоговых окон с помощью методов, предоставляемых модулем tkinter.messagebox. Данный модуль должен быть импортирован отдельно, а вместо его длинного имени допускается назначить псевдоним с помощью инструкции import as.

Виды окон сообщений: showinfo(), showwarning(), showerror(), askquestion(), askokcancel(), askyesno(), askretrycancel().

Опции настройки поля ввода

Опция

Описание

bd

Ширина рамки в пикселах (значение по

умолчанию: 2)

bg

Цвет фона

fg

Цвет переднего плана

font

Шрифт для текста

highlightcolor

Цвет рамки при наведении

selectbackground

Цвет фона выделенного текста

selectforeground

Цвет переднего плана выделенного текста

show

Использовать вместо видимых символов

маскирующие

state

Состояние (NORMAL — рабочее или DISABLED — отключена)

width

Ширина поля ввода в символах

При помощи виджета Listbox вы можете добавлять в приложение список элементов, предлагаемых пользователю для выбора. Для создания объекта listbox используется конструктор Listbox(), которому в качестве аргументов указываются имя родительского контейнера (например, окна или фрейма) и возможные опции, самые популярные из которых представлены вместе с кратким описанием в таблице ниже.

from tkinter import *
import tkinter.messagebox as box
window = Tk() # Конструктор для создания объекта окна
window.title('Пример с радиокнопками')
frame = Frame(window)
#StringVar() - Cтроковая переменная-объект, где будет храниться
#результат выбора
book = StringVar()
radio_1 = Radiobutton(frame, text = 'HTML5', \
variable = book, value = 'Выбран HTML5')
radio_2 = Radiobutton(frame, text = 'CSS3', \
variable = book, value = 'Выбран CSS3')
radio_3 = Radiobutton(frame, text = 'JS', \
variable = book, value = 'Выбран JavaScript')
radio_1.select() #по-умолчанию выбрана первая кнопка
def dialog():
    box.showinfo('Результат выбора', \
    'Результат: \n' + book.get())
btn = Button(frame, text = 'Выбрать', command = dialog)
btn.pack(side = RIGHT, padx = 5)
radio_1.pack(side = LEFT)
radio_2.pack(side = LEFT)
radio_3.pack(side = LEFT)
frame.pack(padx = 30, pady = 30)
window.mainloop()

Существует возможность сбросить выделение элементов группы положений переключателя в программе — для этого используется метод deselect() объекта Radiobutton.

from tkinter import *
import tkinter.messagebox as box
window = Tk() # Конструктор для создания объекта окна
window.title('Пример с чекбоксами')
frame = Frame(window)
#IntVar() - Целочисленная переменная-объект, где будет храниться
#результат выбора
var_1 = IntVar()
var_2 = IntVar()
var_3 = IntVar()
#onvalue - Значение  для присваивания, в  случае если флажок установлен
#пользователем
#offvalue - Значение для присваивания, в случае если флажок пользователем не
#установлен (сброшен)
book_1 = Checkbutton(frame, text = 'HTML5', \
variable = var_1, onvalue = 1, offvalue = 0)
book_2 = Checkbutton(frame, text = 'CSS3', \
variable = var_2, onvalue = 1, offvalue = 0)
book_3 = Checkbutton(frame, text = 'JS', \
variable = var_3, onvalue = 1, offvalue = 0)
def dialog():
    str = 'Ваш выбор:'
    if var_1.get() == 1: str += '\nHTML5'
    if var_2.get() == 1: str += '\nCSS3'
    if var_3.get() == 1: str += '\nJavaScript'
    box.showinfo('Результат', str)
btn = Button(frame, text = 'Выбрать', command = dialog)
btn.pack(side = RIGHT, padx = 5)
book_1.pack(side = LEFT)
book_2.pack(side = LEFT)
book_3.pack(side = LEFT)
frame.pack(padx = 30, pady = 30)
window.mainloop()

Объект Checkbutton содержит методы select() и deselect(), которые могут использоваться для переключения состояния флажка, например check_1.select().

Состояние объекта Checkbutton можно поменять на противоположное, используя метод объекта toggle().

Модуль tkinter позволяет работать с файлами изображений, которые могут быть выведены на виджетах Label, Text, Button или Canvas. Для этих целей используется конструктор Photoimage(), который создает объект изображения. Достаточно указать ему в качестве аргумента имя нужного файла с изображением в виде file = 'имя-файла'. Можно воспользоваться полезным методом subsample() для уменьшения изображения, указав в качестве аргументов параметры дискретизации по горизонтали и вертикали в виде х=значение и y=значение. Например, указанные значения x=2, y=2 приведут к отбрасыванию каждого второго пиксела, то есть изображение уменьшится наполовину по отношению к оригиналу.

В этом материале приведен пример реальной программы для переименования имен файлов в папке. Названия файлов переименовываются на цифровые: 1, 2, 3, 4 и т.д. По нажатию правой кнопки можно скопировать/вставить путь до нужной папки.