Как получить фоновое изображение в tkinter, чтобы оно отображалось над всеми метками, кроме текста на нем

#python #python-3.x #user-interface #tkinter #python-imaging-library

#python #python-3.x #пользовательский интерфейс #tkinter #python-imaging-library

Вопрос:

Я создал приложение с графическим интерфейсом погоды, которое работает хорошо, вот код:https://github.com/ApurvaLawate/Weather/blob/master/weatherApp.py

Я хочу добавить последнюю функциональность. Приложение получает данные в формате JSON, который имеет одну переменную с именем data[‘weather’][‘main’], которая может иметь 8 значений, таких как дождь, гроза, морось и т.д. Я хочу изменить фон этого приложения на Drizzle.jpg если данные [‘погода’] [‘main’] == Морось, что можно сделать, но перед этим изображение должно отображаться на всем фоне, а не только за метками. Вот вывод для справки:

https://drive.google.com/file/d/13SZQK9i1uXd7Qq4p-3KMTMZnhSFJJtXM/view?usp=sharing

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

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

1. Вы можете использовать Canvas для удержания фонового изображения (с помощью Canvas.create_image() ), записей и кнопок (с помощью Canvas.create_window() ). Затем используйте Canvas.create_text() для отображения информации о погоде.

2. Но я думаю, что это приведет к удалению функциональности Label.config(). Поскольку функция getWeather() обновляет значения меток по умолчанию. Я действительно не понимаю, как это сделать. можем ли мы иметь метки с canvas?

3. Вы можете использовать Canvas.create_text() сначала для создания необходимой информации о погоде, а затем использовать Canvas.itemconfigure() для обновления текста.

4. о, я понимаю. итак, чтобы убедиться, что мне нужно сделать, это удалить метки и добавить холст. верно?

5. Как я уже сказал, фоновое изображение, запись и кнопка также должны быть помещены внутри холста.