Import/export CSV, impression QPrinter, tri A-Z et Z-A, toggle alertes, statistiques visuelles (Matplotlib), configuration SMTP, dark/light mode, "a propos". Tout ce qu'on attend d'un outil interne fini, pas d'un prototype. Et tout ca tient dans un seul lima.py.
Brique 4 — Le dark mode en PyQt5 sans librairie
PyQt5 expose des stylesheets façon CSS. Du coup le dark mode c'est juste un setStyleSheet a toggler :
def toggle_dark_mode(self):
self.setStyleSheet("""
QMainWindow {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #323232, stop:1 #1a1a1a);
color: #FFFFFF;
}
QTableWidget {
background-color: #202020;
border: 1px solid #404040;
}
QHeaderView::section {
background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #404040, stop:1 #202020);
color: #FFFFFF;
}
""")
Pas de qtdarkstyle, pas de moteur de theme externe. Tu écris tes 2 stylesheets, tu les switches au clic. C'est de la CSS Qt, point.
Tkinter a
ttk.Style().theme_use(...), mais ca couvre que les widgetsttket pas les widgetstkclassiques. Pour un vrai dark mode en Tk il faut une lib tierce commecustomtkinterousv-ttk. Avec PyQt5, c'est intégré via QSS.

SOCIAL SHARE CARD GENERATOR