Можете ли вы отобразить как изображение, так и некоторый текст в одной метке tkinter?

#python #tkinter

Вопрос:

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

Проблема в том, что текст должен иметь фон, который портит внешний вид панели загрузки. Поэтому я сделал фоновые изображения для текста. Однако я понял, что метки не могут содержать как изображения (фоновые изображения), так и текст (осталось несколько секунд).

Есть ли способ разрешить надписям содержать изображения и текст? Спасибо.

Определение Percent0Data:

 TimeDisplay0Data = PhotoImage(file = os.getcwd() "/appdata/TimeDisplay0.png")
 

Определение загрузочной планки:

 ProductionBar1 = Label(Main,image=Percent0Data,bd=0)
ProductionBar1.place(x=60,y=140)
 

Настройка текста:

 LabelProductionTime1.config(text=str(TimeLeftRelic1).ljust(5,"0") "s")
 

Настройка фонового изображения:

 ProductionBar1.config(image=Percent0Data)
 

Ответ №1:

Да, ты можешь. Вам нужно указать compound параметр, который будет одним из вариантов: tk.LEFT, tk.RIGHT, tk.CENTER, tk.BOTTOM, tk.TOP

минимальный пример:

 from tkinter import *
from PIL import Image, ImageTk


root = Tk()

image = ImageTk.PhotoImage(Image.open(r'imgpath')) 

Label(root, text='Hello', image=image, compound='center').pack()

root.mainloop()
 

Комментарии:

1. Спасибо! Какой тип compound лучше всего использовать?

2. @SamuelMay нет ничего лучше. Это зависит от того, какой из них вы хотите использовать.