Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать закругленные края окна в Tkinter

Faddy Autor Ученик (243), закрыт 6 месяцев назад
я думал может на фон поставить картинку с округлыми краями и каким-нибудь способом сделать окно прозрачным и установить флаг overrideredirect, например:
берем округлую картинку и ставим ее на фон, изначально окно с флагом overrideredirect
будет выглядеть как пустой квадрат но мы же установили картинку а окно сделали прозрачным,
вот мне нужно узнать как бы сделать его прозрачным или типа того?
Лучший ответ
Артём Аксёнов Мастер (2411) 6 месяцев назад
В Tkinter стандартные окна не поддерживают закругленные края напрямую. Однако вы можете использовать библиотеку ttk или дополнительные библиотеки, такие как tkinter.ttk и PIL, чтобы создать эффект закругленных углов. Вот пример, как это можно сделать с использованием PIL для создания окна с закругленными краями:


 import tkinter as tk 
from PIL import Image, ImageDraw

def create_rounded_rectangle(width, height, radius):
# Создаем изображение с прозрачным фоном
img = Image.new('RGBA', (width, height), (255, 255, 255, 0))
draw = ImageDraw.Draw(img)

# Рисуем закругленный прямоугольник
draw.rounded_rectangle([0, 0, width, height], radius=radius, fill=(255, 255, 255, 255))

return img

def main():
root = tk.Tk()
root.overrideredirect(True) # Убираем стандартные рамки окна

width, height = 400, 300
radius = 20

# Создаем изображение с закругленными углами
img = create_rounded_rectangle(width, height, radius)
photo = tk.PhotoImage(img)

# Создаем виджет с изображением
label = tk.Label(root, image=photo)
label.pack()

# Отображаем окно
root.geometry(f"{width}x{height}+100+100")
root.mainloop()

if __name__ == "__main__":
main()

Обратите внимание, что для работы с PIL вам может понадобиться установить библиотеку Pillow, если она еще не установлена:

 pip install Pillow  
ЭвелинаМудрец (11207) 6 месяцев назад
С помощью CustomTkinter можно попробовать
Остальные ответы
Похожие вопросы