#python-3.x #tkinter #canvas #label
Вопрос:
Недавно я создал приложение для просмотра на Python. Но это выглядит очень скучно из-за одноцветного фона и ничего, кроме времени и даты. Поэтому я хотел добавить фон в приложение. И я столкнулся с проблемой: если я просто упакую изображение в этикетку, другие этикетки не будут прозрачными и будут иметь свой собственный фон. Я пытался использовать tkinter.Canvas
, но это не работает с ярлыками. Есть какие-нибудь предложения?
Это код для первой версии приложения:
from tkinter import *
from time import sleep
from random import choice
import datetime
root=Tk()
BGCOLOR='#000000'
FGCOLOR='#FFFFFF'
root.overrideredirect(True)
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
root.geometry(str(w) 'x' str(h) ' 0 0')
root.configure(bg=BGCOLOR)
date=str(datetime.datetime.now()).split()[0].split('-')
tl=Label(root,text=str(datetime.datetime.now()).split()[1].split('.')[0],font=['URW Gothic L',300], fg=FGCOLOR, bg=BGCOLOR)
dl=Label(root,text=date[2] '.' date[1] '.' date[0],font=['URW Gothic L',100],bg=BGCOLOR,fg=FGCOLOR)
tl.pack(expand=True, fill=BOTH)
dl.pack(expand=True,fill=BOTH)
Button(master=root,text='X',bg=BGCOLOR,fg=FGCOLOR,command=root.destroy).pack(side=RIGHT)
while True:
tl.config(text=str(datetime.datetime.now()).split()[1].split('.')[0])
if date!=str(datetime.datetime.now()).split()[0].split('-'):
date=str(datetime.datetime.now()).split()[0].split('-')
dl.config(text=date[2] '.' date[1] '.' date[0])
dl.update()
tl.update()
sleep(1)
Комментарии:
1. нет, не работает. Я смотрел в
tk.Tk().config()
(без аргументов он выводит фактическую конфигурацию), и там нет параметра под названием «изображение»2. Проверить geeksforgeeks.org/how-to-use-images-as-backgrounds-in-tkinter
3. сделал я. но это не работает для классов меток
4. Ну что ж, я нашел его. Но… Я не могу выбрать цвет переднего плана, не так ли?
Ответ №1:
Итак, само решение состоит в том, чтобы создать объект Canvas и использовать функцию create_text() с аргументами «заливка» и «шрифт». Самое лучшее в этом то, что вы можете изменить положение текста