- Splash screen au demarrage (fond sombre, logo CopyDev, nom, coordonnees) - Statut dans le splash : licence, mise a jour, chargement - A propos refait : design sombre pro, logo 150px, version, description, coordonnees completes (email, web, tel), copyright - Barre de titre : "CopyDev Imposing Tool vX.X.X — www.copydev.fr" - Barre de statut : mention "CopyDev — contact@copydev.fr" permanente Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
89 lines
3.1 KiB
Python
89 lines
3.1 KiB
Python
"""Splash screen CopyDev au demarrage."""
|
|
|
|
import os
|
|
import sys
|
|
from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel, QApplication
|
|
from PyQt6.QtGui import QPixmap, QFont, QColor, QPainter
|
|
from PyQt6.QtCore import Qt, QTimer
|
|
|
|
|
|
class SplashScreen(QWidget):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.setWindowFlags(Qt.WindowType.FramelessWindowHint | Qt.WindowType.WindowStaysOnTopHint)
|
|
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground, False)
|
|
self.setFixedSize(500, 400)
|
|
self.setStyleSheet("background-color: #0f172a;")
|
|
|
|
layout = QVBoxLayout(self)
|
|
layout.setContentsMargins(40, 30, 40, 30)
|
|
|
|
# Logo
|
|
logo_label = QLabel()
|
|
base = sys._MEIPASS if getattr(sys, 'frozen', False) else os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
logo_path = os.path.join(base, "resources", "logo.png")
|
|
if os.path.exists(logo_path):
|
|
pixmap = QPixmap(logo_path).scaled(140, 140,
|
|
Qt.AspectRatioMode.KeepAspectRatio,
|
|
Qt.TransformationMode.SmoothTransformation)
|
|
logo_label.setPixmap(pixmap)
|
|
logo_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
layout.addWidget(logo_label)
|
|
|
|
layout.addSpacing(10)
|
|
|
|
# Nom app
|
|
title = QLabel("COPYDEV IMPOSING TOOL")
|
|
title.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
title.setFont(QFont("Segoe UI", 18, QFont.Weight.Bold))
|
|
title.setStyleSheet("color: white;")
|
|
layout.addWidget(title)
|
|
|
|
# Sous-titre
|
|
subtitle = QLabel("Outil professionnel d'imposition PDF")
|
|
subtitle.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
subtitle.setFont(QFont("Segoe UI", 11))
|
|
subtitle.setStyleSheet("color: #94a3b8;")
|
|
layout.addWidget(subtitle)
|
|
|
|
layout.addSpacing(20)
|
|
|
|
# Status
|
|
self._status = QLabel("Demarrage...")
|
|
self._status.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
self._status.setFont(QFont("Segoe UI", 9))
|
|
self._status.setStyleSheet("color: #64748b;")
|
|
layout.addWidget(self._status)
|
|
|
|
layout.addStretch()
|
|
|
|
# Coordonnees
|
|
contact = QLabel(
|
|
"CopyDev - Jules Dubois\n"
|
|
"contact@copydev.fr | www.copydev.fr"
|
|
)
|
|
contact.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
contact.setFont(QFont("Segoe UI", 8))
|
|
contact.setStyleSheet("color: #475569;")
|
|
layout.addWidget(contact)
|
|
|
|
# Copyright
|
|
copy_label = QLabel("2026 CopyDev - Tous droits reserves")
|
|
copy_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
copy_label.setFont(QFont("Segoe UI", 7))
|
|
copy_label.setStyleSheet("color: #334155;")
|
|
layout.addWidget(copy_label)
|
|
|
|
# Centrer sur l'ecran
|
|
screen = QApplication.primaryScreen()
|
|
if screen:
|
|
geo = screen.geometry()
|
|
self.move(
|
|
(geo.width() - self.width()) // 2,
|
|
(geo.height() - self.height()) // 2
|
|
)
|
|
|
|
def set_status(self, text):
|
|
self._status.setText(text)
|
|
QApplication.processEvents()
|