Уведомления

Группа в Telegram: @pythonsu

#1 Май 2, 2017 11:35:19

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачный background tkinter.Label

Здравствуйте!
Подскажите пожалуйста, возможно ли сделать фон Label прозрачным или чтобы отображался только текст без фона?
Заранее благодарю.

Офлайн

#2 Май 2, 2017 12:47:21

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачный background tkinter.Label

Неужели такая очевидная функция не предусмотрена? Странное это.

Офлайн

#3 Май 2, 2017 20:14:32

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

Прозрачный background tkinter.Label

Шта? правильно сформулированый вопрос способствует правильному ответу. пока непонятно что вы хотите. Лучше всего выложить запускабельный небольшой пример который демонстрирует вашу проблему.



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

Офлайн

#4 Май 4, 2017 12:43:17

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачный background tkinter.Label

Вот пример кода:

 import tkinter as tk
root = tk.Tk()
root.geometry("600x400")
bg = tk.PhotoImage(file='background.png')
fon = tk.Label(image=bg)
lab = tk.Label(text='Some Label')
fon.grid()
lab.grid(row=0, column=0, sticky=tk.NW)
root.mainloop()
Есть ли возможность сделать у объекта lab прозрачный фон?

Офлайн

#5 Май 4, 2017 16:21:55

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

Прозрачный background tkinter.Label

Kemok
Есть ли возможность сделать у объекта lab прозрачный фон?
в такой реализации нету, tkinter.Label не имеет возможности установить прозрачныость фона, и допилить ХЗ как…
Везде советуют создавать канвас и по нему рисовать текст. Примерно вот так..
 import tkinter as tk
root = tk.Tk()
c = tk.Canvas(width=600, height=400)
c.pack()
bg = tk.PhotoImage(file="postthumb-3-600x400.gif")
c.create_image(300, 200, image=bg)
lab = c.create_text(40, 10, text="Some Text...", fill="Black")
#c.coords(lab, 100, 100)
#d=tk.Button(text="Click")
#d.place(x= 90, y = 5)
root.mainloop()



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

Отредактировано PEHDOM (Май 4, 2017 16:22:25)

Офлайн

#6 Май 5, 2017 08:52:39

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачный background tkinter.Label

Благодарю! И еще вопрос. Как в этом случае быть с флажками и радиокнопками? Есть ли возможность у них сделать прозрачный фон?

 import tkinter as tk
root = tk.Tk()
root.geometry("600x400")
bg = tk.PhotoImage(file='background.png')
fon = tk.Label(image=bg)
imv = tk.BooleanVar()
che = tk.Checkbutton(root, variable=imv, onvalue=True, offvalue=False)
imv.set(True)
fon.grid()
che.grid(row=0, column=0)
#root.grid_columnconfigure(0, weight=1)
root.mainloop()

Офлайн

#7 Май 5, 2017 11:11:45

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

Прозрачный background tkinter.Label

Kemok
Благодарю! И еще вопрос. Как в этом случае быть с флажками и радиокнопками? Есть ли возможность у них сделать прозрачный фон?
нету, у ткинтера вообще с прозрачностью фона полная жопа, кроме прозрачности главного окна. Можно конечно нарисовать свои катринки для чекбаттона:



убрать индикатор, а текст рисоваать поверх канваса через create_text, но всеравно вокруг катринки останеться серая рамочка:

 import tkinter as tk
root = tk.Tk()
c = tk.Canvas(width=600, height=400)
c.pack()
bg = tk.PhotoImage(file="postthumb-3-600x400.gif")
c.create_image(300, 200, image=bg)
lab = c.create_text(40, 10, text="Some Text...", fill="Black")
imv = tk.BooleanVar()
img_off = tk.PhotoImage(file="choff.gif")
img_on = tk.PhotoImage(file="chon.gif")
c.create_window(90, 10, window = tk.Checkbutton(root,indicatoron=False, image=img_off, selectimage=img_on, bd=0, selectcolor=''))
root.mainloop()
результат выглядит вот так



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

Отредактировано PEHDOM (Май 5, 2017 11:15:24)

Офлайн

#8 Май 5, 2017 17:07:29

Kemok
Зарегистрирован: 2017-04-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Прозрачный background tkinter.Label

Хотя бы так. Благодарю!)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version