from PySide6.QtCore import Qt
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QDialog, QDialogButtonBox, QLabel, QMenu, QPushButton, QSystemTrayIcon, QVBoxLayout, QStyle, QWidget
import sys
class DarkQDialogMayFlashLightFirst(QSystemTrayIcon):
def __init__(self, _icon):
super().__init__(_icon)
self.tray_icon = QSystemTrayIcon
self.tray_menu = QMenu()
self.tray_menu.addAction('Exit', QApplication.exit)
self.tray_menu.addAction('QDialog', self.dialog)
self.setContextMenu(self.tray_menu)
@staticmethod
def dialog():
text = '\n' * 30
labelText = QLabel(text)
buttonOk = QPushButton('Ok')
buttonOk.clicked.connect(lambda: dialog.close())
buttons = QDialogButtonBox()
buttons.addButton(buttonOk, QDialogButtonBox.AcceptRole)
layout = QVBoxLayout()
layout.addWidget(labelText)
layout.addWidget(buttons)
dialog = QDialog()
dialog.setLayout(layout)
dialog.exec()
sys.argv += ['-platform', 'windows:darkmode=2']
def main():
app = QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False)
app.setStyle('Fusion')
app_icon = QApplication.style().standardIcon(QStyle.StandardPixmap.SP_MessageBoxQuestion)
tray_icon = DarkQDialogMayFlashLightFirst(app_icon)
tray_icon.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()