@xomiles

Как сделать фон полупрозрачным и размытым в меню трея?

Хочу сделать меню в трее с полупрозрачным и размытым фоном. Нашёл несколько примеров для обычного окна, но вот применить это к окну в трее не получается, подскажите пожалуйста как это сделать.
672d3f300e31b314721335.png
672d3f39bccbc867131372.png
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
import sys
from PySide6.QtWidgets import QApplication, QSystemTrayIcon, QMenu
from PySide6.QtGui import QIcon, QAction
from PySide6.QtCore import Qt


def create_tray_icon():
    app = QApplication(sys.argv)

    tray_icon = QSystemTrayIcon(QIcon("free-icon-mushroom-17845555.png"), app)

    # Создаем меню
    tray_menu = QMenu()
    tray_menu.setWindowFlags(tray_menu.windowFlags() | Qt.FramelessWindowHint | Qt.NoDropShadowWindowHint)
    tray_menu.setAttribute(Qt.WA_TranslucentBackground)

    # Настройка стиля меню
    tray_menu.setStyleSheet("""
        QMenu {
            background-color: rgba(255, 255, 255, 150);
            border: 1px solid rgba(0, 0, 0, 50);
        }
        QMenu::item {
            padding: 5px 30px;
            margin: 2px;
            border-radius: 5px;
        }
        QMenu::item:selected {
            background-color: rgba(100, 100, 100, 100);  /* Менее яркое выделение */
            color: black;  /* Цвет текста при выделении */
        }
    """)

    # Создаем действия
    action_show_message = QAction("Показать сообщение")
    action_quit = QAction("Выход")

    tray_menu.addAction(action_show_message)
    tray_menu.addSeparator()
    tray_menu.addAction(action_quit)

    action_show_message.triggered.connect(lambda: tray_icon.showMessage("Заголовок", "Это сообщение из трея"))
    action_quit.triggered.connect(app.quit)

    tray_icon.setContextMenu(tray_menu)
    tray_icon.show()

    sys.exit(app.exec())


if __name__ == "__main__":
    create_tray_icon()


672dc9e2a21c3749067411.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы