Как сделать круглую кнопку в tkinter
Перейти к содержимому

Как сделать круглую кнопку в tkinter

  • автор:

Как закруглить края кнопки tkinter на Python?

Я пытался найти это в гугле, но безрезультатно. Пожалуйста, подскажите, как можно закруглить края кнопки, созданной с помощью модуля tkinter на Python?

  • Вопрос задан более трёх лет назад
  • 6456 просмотров

Комментировать

Решения вопроса 1

Big_Trouble

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-сообщество

[RSS Feed]

  • Начало
  • » 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 месяцев назад

Проблема в том что у меня на фоне картинка и углы просто очень сильно видно а я хочу сделать их прозрачными

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *