Добрый день!
У меня проблема с tkinter, которую я не могу решить самостоятельно. Я хочу отобразить обратный отсчет в окне, которое будет расположено над моей панелью задач, как на картинке ниже. ![](https://i.stack.imgur.com/bYMct.png)
Я хотел, чтобы моя программа работала при запуске и закрывалась, когда я выключал компьютер. Мне действительно нужно, чтобы это окно было над моей панелью задач, и оно мне нужно постоянно. Моя проблема в том, что он иногда исчезает.
При выполнении различных тестов я отмечал различные ситуации:
- Когда я открываю полноэкранное окно, которое будет покрывать мою панель задач, моя программа будет отображаться выше это окно, но исчезает, когда я закрываю полноэкранное окно. Если я снова открою это окно, моя программа снова откроется над ним и исчезнет, как только я закрою окно.
- При наведении курсора мыши на приложение, открытое на панели задач (например, когда я хочу выбрать указанная вкладка c в моем браузере), моя программа исчезает.
- Когда я ничего не делаю на моем компьютере, моя программа остается видимой, как я хочу. В общем, кажется, что если я не буду взаимодействовать с панелью задач, моя программа останется видимой.
Я прочитал ответ на вопрос Почему мое окно Tkinter иногда не отображается Дисплей вообще? и тестировал несколько позиций линии
root.overrideredirect(1)
, но ничего не изменилось Вот мой код:
import tkinter as tk
from datetime import datetime
from dateutil import relativedelta
def diff(): #Computes the difference , in days/hours/minutes, between two dates
"""
Returns a string
"""
date_2 = datetime(2020, 5, 4, 8, 00)
date_1 = datetime.now()
#This will find the difference between the two dates
difference = relativedelta.relativedelta(date_2, date_1)
months = difference.months
days = difference.days+months*30
hours = difference.hours
minutes = difference.minutes
text=(str(days)+" jours "+str(hours)+" heures "+str(minutes)+" minutes ")
return text #string
def update(): #Updating the window
texte=str(diff())
l.config(text="Temps restant avant CCP:\n "+texte) #That's the string that needs to update every minute
root.after(1000, update)
root = tk.Tk()
root.overrideredirect(1)
root.wm_attributes("-topmost", 1) #This should make my window appear above everything
root.geometry("{0}x{1}+1300+1040".format(300, 40))
root.resizable(width=False, height=False) #Removing it doesn't change my problem
root['bg']="#d5dadc" #So that the background of the window matches my taskbar's color
l = tk.Label(text='Init...',bg="#d5dadc")
l.pack()
root.after(1000, update) #starts updating after 1 minute
root.mainloop()
Извините, если мой ответ уже получен, но все остальные вопросы, которые я нашел, не воспроизводят ту же ситуацию, в которой я нахожусь.
Спасибо за вашу помощь!
Франческо