Для небольшого окна подойдёт Tkinter. Кнопке нужно передать функцию, которая выполнится при нажатии, а саму кнопку разместить в окне. Ниже полный пример со счётчиком:
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title('Счётчик')
count = tk.IntVar(value=0)
def increment():
count.set(count.get() + 1)
ttk.Label(root, textvariable=count).pack(padx=20, pady=10)
ttk.Button(root, text='Добавить', command=increment).pack()
root.mainloop()
Параметр command получает саму функцию increment. Если написать command=increment(), функция выполнится сразу при создании кнопки, а в параметр попадёт результат её вызова. В данном примере это None, поэтому последующие нажатия ничего не сделают. Скобки при передаче обработчика здесь не нужны.
Метод pack() отвечает за размещение виджета. Создание объекта кнопки без размещения ещё не означает, что он станет видимым. Вместо pack можно выбрать grid, если удобнее расположить элементы по строкам и столбцам. Не смешивайте эти два способа для дочерних элементов одного и того же контейнера.
Вызов mainloop() запускает обработку событий окна. Без него скрипт дойдёт до конца и интерфейс не будет нормально реагировать. В обработчик кнопки не стоит помещать бесконечный цикл или долгую блокирующую операцию: пока такой код выполняется, окно не сможет своевременно перерисовываться и принимать новые события.
Если ошибка возникает уже на импорте Tkinter, проверьте установку командой python -m tkinter. Наличие поддержки Tcl/Tk зависит от поставки Python и компонентов установки. Сначала добейтесь запуска этого маленького примера, после чего перенесите его обработчик и размещение в свой файл с выбранным цветом окна.
Лучший ответ
Датахакер
Датахакер
Кнопка python как сделать?
У меня как раз стояли скобки после функции в command. Убрал, заработало.