Как закруглить края кнопки tkinter на Python?
Я пытался найти это в гугле, но безрезультатно. Пожалуйста, подскажите, как можно закруглить края кнопки, созданной с помощью модуля tkinter на Python?
- Вопрос задан более трёх лет назад
- 6456 просмотров
Комментировать
Решения вопроса 1

Big_Trouble @Big_Trouble
Программист недосамоучка
По умолчанию в Tkinter нельзя создать Rounded Button(нет такой опции), но можно наложить на готовую кнопку изображение.
1. Создаем в графическом редакторе изображение.
2. Переписываем код ниже.
3. Profit
from tkinter import * root = Tk() loadimage = PhotoImage(file="image.png") roundedbutton = Button(root, image=loadimage) roundedbutton["border"] = "0" # Обязательно убираем border!! roundedbutton.pack() root.mainloop()
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Python-сообщество
![]()
- Начало
- » GUI
- » Никто не делал круглую кнопку в WxPython?
#1 Июль 2, 2009 13:00:47
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Требуется поместить на форму круглую кнопку какие есть варианты реализации?
#2 Июль 2, 2009 13:38:40
hellslade От: Зарегистрирован: 2008-01-28 Сообщения: 240 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Есть такой вариант wx.lib.agw.shapedbutton.SButton
появилось это вроде в версии 2,8,9,2
Скачайте демку и смотрите ее, там есть полезные вещи 🙂
#3 Июль 2, 2009 13:50:57
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Описание в инете нашел данного класса..
а вот примеров как сделать именно круглую кнопку что то не видно.
#4 Июль 2, 2009 14:02:28
hellslade От: Зарегистрирован: 2008-01-28 Сообщения: 240 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Vad
значит плохо искали. демку смотрели?
self.circular_button = wx.lib.agw.shapedbutton.SButton(self.panel, label=’Circular Button’, size=(100,100))
вроде кнопка довольно круглая получилась 🙂
#5 Июль 2, 2009 14:13:02
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Так демку смотрел но примера с круглой кнопкой что то не нашел…
Видимо действительно плохо смотрел)
#6 Июль 2, 2009 14:53:33
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Спасибо за помощь..
Все заработало — то что нада
#7 Июль 17, 2009 14:29:47
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Еще вопрос в тему круглых кнопок…сделал все работает..
Теперь нужно реализовать длинный клик на кнопку..т.е. как то вытянуть события нажатия на кнопку и отпускания кнопки
В свойствах SButton есть OnLeftDown() и OnLeftUp() как их привязать в скрипт не могу пока понять?
#8 Июль 24, 2009 15:18:52
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
В продолжении темы..с кнопкой и кликами разобрался…
следующая проблема — не собирается exe файл с помощью py2exe
ругается на SButton а именно:
IOError: No such file or directory: ‘C:\\py_projects\\Test\\dist\\Test.exe\\wx\\lib\\agw\\UpButton.png’
при сборке exe видимо туда не попал файл с картинкой кнопки из модуля wx.lib.agw
Никто не сталкивался с данной проблемой?
#9 Авг. 4, 2009 14:20:15
Vad От: Зарегистрирован: 2008-08-28 Сообщения: 94 Репутация: 0 Профиль Отправить e-mail
Никто не делал круглую кнопку в WxPython?
Решил проблему сборки exe след. образом:
Нашел вариант модуля lib.agw в котором картинки с изображением кнопок Button.png
преобразовано в строки и включены в сам модуль а не подгружаются.
В таком варианте py2exe смог засунуть их в exe, картинки же *.png он почему то не хотел включать в exe.
Сделать круглую кнопку в tkinter
Можно ли в tkinter делать круглые кнопки и, если можно, то как?
Отслеживать
9,718 9 9 золотых знаков 24 24 серебряных знака 35 35 бронзовых знаков
задан 24 мая 2020 в 13:38
Werflame Xij Werflame Xij
81 1 1 золотой знак 3 3 серебряных знака 10 10 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Скрыть границу кнопки и задать в нее любую картинку (круглую, квадратную, Hot couture), не забыв при этом указать цвет фона кнопки таким же как и у картинки:
# загружаем картинку self.loadimage = tk.PhotoImage(file="rounded_button.png") # устанавливаем картинку в качестве шкурки кнопки self.roundedbutton = tk.Button(self, image=self.loadimage) # на всякий случай, чтобы ничто нигде не вылезало # цвет фона картинки белый, поэтому # устанавливаем цвет фона кнопки белым self.roundedbutton["bg"] = "white" # Убираем границу кнопки (за внешний вид отвечает картинка) self.roundedbutton["border"] = "0"
В результате получаем вот это:
Убрать углы у закруглённой кнопки(Tkinter)

Создал окно с фоновым изображением(картинкой), но когда я создаю кнопку с закруглёнными углами(CustomTkinter но он тот же самый tkinter), углы кнопки чёрные и очень заметные. Как это исправить? Сделать прозрачные углы или что?
Голосование за лучший ответ
Один из способов — это использовать модуль CustomTkinter, который позволяет создавать кнопки с закруглёнными углами и прозрачными фонами. Вы можете установить этот модуль с помощью команды pip install customtkinter и импортировать его в свой код. Затем вы можете создать кнопку с помощью класса CTkButton и указать параметры corner_radius и bg_color для задания радиуса скругления и цвета фона кнопки. Например:
import customtkinter as ctk
import tkinter as tk
root = tk.Tk()
root.geometry("300x200")
button = ctk.CTkButton(root, text="Button", corner_radius=10, bg_color="white")
button.pack()
root.mainloop()
Другой способ — это использовать картинку в качестве фона кнопки и скрыть границу кнопки. Для этого вы можете загрузить картинку с закруглёнными углами и прозрачным фоном (например, в формате PNG) и использовать её в качестве параметра image при создании кнопки. Затем вы можете установить цвет фона кнопки таким же, как и цвет фона окна, и убрать границу кнопки, установив параметр border равным 0. Например:
import tkinter as tk
root = tk.Tk()
root.geometry("300x200")
# загружаем картинку
image = tk.PhotoImage(file="rounded_button.png")
# создаём кнопку с картинкой в качестве фона
button = tk.Button(root, image=image)
# устанавливаем цвет фона кнопки таким же, как и цвет фона окна
button["bg"] = "white"
# убираем границу кнопки
button["border"] = 0
button.pack()
root.mainloop()
TesterМудрец (14155) 9 месяцев назад
# устанавливаем цвет фона кнопки таким же, как и цвет фона окна
button[«bg»] = «white»
Ты по факту ничего не поменял. По этому можешь тупо удалить все что писал.
ЭндерУченик (1) 9 месяцев назад
Проблема в том что у меня на фоне картинка и углы просто очень сильно видно а я хочу сделать их прозрачными

это работает только с тем-же фоном, что у кнопки. Короче шляпа.