Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 20, 2020 13:43:54

Konstantin1984+
Зарегистрирован: 2020-02-04
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

У меня возник вопрос. Как сделать прозрачный фон у объекта Canvas (в том числе у вставленной картинки). Ведь все виджеты, по сути, вставляются в прямоугольник, имеющий фоновый цвет. В итоге если я перемещаю объект по экрану и задеваю другой объект с отличным от фона прямоугольника цветом, то проявляется фон, а хотелось бы, чтобы его не было видно. Как это сделать?

Офлайн

#2 Июнь 20, 2020 13:53:43

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

alpha=
(Windows, Mac) Controls window transparency. 0.0 means fully transparent, 1.0 means fully opaque. This isn’t supported on all systems; where not supported, Tkinter always uses 1.0. Note that in this release, this attribute must be given as “-alpha”.

Документация

Отредактировано 4kpt_V (Июнь 20, 2020 13:54:42)

Офлайн

#3 Июнь 20, 2020 18:47:30

Konstantin1984+
Зарегистрирован: 2020-02-04
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

С данным материалом я знаком, но указанный параметр делает прозрачным окно и все, что в нем находится, а мне нужно сделать прозрачным фон для объекта, чтобы вне зависимости от того, с каким объектом он пересекается, или какого цвета холст, фон не был виден.

Офлайн

#4 Июнь 20, 2020 21:11:40

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Честно. Я не пойму о чем вы.

Офлайн

#5 Июнь 21, 2020 10:57:14

Konstantin1984+
Зарегистрирован: 2020-02-04
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Скажу по-другому, есть, к примеру, картинка, на которой изображен человечек, изображен он на каком-то фоне. Я вставляю картинку в Canvas tkinter (или в pygame), и если фон картинки не совпадает по цвету с холстом, то мы видим не только человечка, но и фон. Такая же ситуация с пересечением другого объекта: фон, даже если по цвету совпадает с холстом, пересекаясь с другим объектом, становится видимым (накладывается на объект). Мне нужно чтобы было видно только человечка при любых его перемещениях по холсту. Возможно, я много хочу, и это звучит нереально, но ведь как-то это делают, правда, возможно, что в Canvas это невозможно реализовать.

Офлайн

#6 Июнь 21, 2020 13:55:26

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Konstantin1984+
Я вставляю картинку в Canvas tkinter (или в pygame), и если фон картинки не совпадает по цвету с холстом, то мы видим не только человечка, но и фон
Вообщето есть такое понятие как альфа-канал, вот его и используют для задания прозрачности.
 from tkinter import Tk, Canvas
from PIL import Image, ImageTk
root = Tk()
image = Image.open('jerry.png')
tkimg = ImageTk.PhotoImage(image)
canvas = Canvas(root, height=600, width=600)
canvas.grid()
def stamp(event):
    canvas.create_image(event.x, event.y, image=tkimg)
canvas.bind('<ButtonPress-1>', stamp)
root.mainloop()





==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 21, 2020 13:55:52)

Прикреплённый файлы:
attachment jerry.png (20,5 KБ)

Офлайн

#7 Июнь 21, 2020 17:32:45

Konstantin1984+
Зарегистрирован: 2020-02-04
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Здорово! Уважаемый PEHDOM, если бы Вы мне объяснили еще, как такой фон делать (простой вариант), было бы совсем замечательно.

Отредактировано Konstantin1984+ (Июнь 21, 2020 17:33:52)

Офлайн

#8 Июнь 21, 2020 17:49:54

Konstantin1984+
Зарегистрирован: 2020-02-04
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Нашел, все очень просто, судя по всему, в любом графическом редакторе можно фон сделать прозрачным.

Офлайн

#9 Июнь 21, 2020 22:16:20

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Прозрачность фона виджета в Canvas tkinter

Konstantin1984+
Нашел, все очень просто, судя по всему, в любом графическом редакторе можно фон сделать прозрачным.
Капец. Я вообще бы об этом никогда не подумал. Photoshop курс таки надо пройти. Про много чего интересного узнаете. От лямбд регулировок до тоновых кривых

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version