Files

43 lines
1.3 KiB
Python

from PySide6.QtWidgets import QApplication, QSplashScreen
from PySide6.QtCore import Qt, QTimer
from PySide6.QtGui import QPixmap
import sys
import os
def show_splash(existing_app=None):
# Use existing app if provided, otherwise create a new one
app = existing_app or QApplication(sys.argv)
# Get the directory of the executable or script
if getattr(sys, 'frozen', False):
# Running as compiled executable
app_dir = os.path.dirname(sys.executable)
else:
# Running as script
app_dir = os.path.dirname(os.path.abspath(__file__))
# Look for splash image
splash_image = os.path.join(app_dir, 'resources', 'splash.png')
if not os.path.exists(splash_image):
splash_image = os.path.join(app_dir, 'splash.png')
if not os.path.exists(splash_image):
print("No splash image found, skipping splash screen")
return None, app
# Create splash screen
pixmap = QPixmap(splash_image)
splash = QSplashScreen(pixmap, Qt.WindowStaysOnTopHint)
splash.show()
app.processEvents()
return splash, app
if __name__ == "__main__":
# This is for testing the splash screen independently
splash, app = show_splash()
# Close the splash after 3 seconds
QTimer.singleShot(3000, splash.close)
sys.exit(app.exec())