Как запустить окно одновременно с программой?

Хочу использовать маленькое окно в качестве индикатора работы программы. Т. е. чтобы при запуске программы появилось небольшое окно и после окончания работы программы оно исчезло.

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

Мне не надо, чтобы окно обрабатывало какие-либо события, а нужно, чтобы окно работало как индикатор: программа работает — появилось окно, программа закрылась — окно исчезло.

Как это сделать?


Ответы (1 шт):

Автор решения: Amgarak

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

pip install Pillow

pip install pystray

import threading
from PIL import Image
import pystray
import time

def create_icon():
    icon_image = Image.open(r"C:\Users\Amgarak\Desktop\PirateCaptain.ico")
    return pystray.Icon("PirateCaptain", icon_image)

def show_tray_image(icon):
    icon.run()

if __name__ == "__main__":
    icon = create_icon()  
    tray_thread = threading.Thread(target=show_tray_image, args=(icon,))
    tray_thread.start() 

    # Основной код делает что-то полезное
    for i in range(10): 
        print(i) 
        time.sleep(0.5)
    
    icon.stop()  # Чтото полезное сделали? Останавливаем иконку, программа завершается
    tray_thread.join()

P.S. pystray Package Documentation

→ Ссылка