Spec-Zone.ru › Qt 5.15

Тип QML SystemTrayIcon

Иконка системного трея. Подробнее...

Заявление об импорте: import Qt.labs.platform 1.1
С тех пор: Qt 5.8
Наследует:

QtObject

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Свойства

  • available : bool
  • geometry : rect
  • icon
    • icon.mask : bool
    • icon.name : string
    • icon.source : url
  • menu : Меню
  • supportsMessages : bool
  • tooltip : string
  • visible : bool

Сигналы

  • activated(ActivationReason reason)
  • messageClicked()

Методы

  • void hide()
  • void show()
  • void showMessage(string title, string message, MessageIcon icon, int msecs)

Подробное описание

Тип SystemTrayIcon предоставляет иконку приложения в системном трее.

Многие платформы настольных ПК предоставляют специальный системный трей или область уведомлений, где приложения могут отображать иконки и сообщения об уведомлениях.

Следующий пример демонстрирует создание иконки системного трея и использование сигнала activated():

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    onActivated: {
        window.show()
        window.raise()
        window.requestActivate()
    }
}

Меню трея

SystemTrayIcon может иметь меню, которое открывается при активации иконки.

Следующий пример демонстрирует присвоение Меню иконке системного трея:

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    menu: Menu {
        MenuItem {
            text: qsTr("Quit")
            onTriggered: Qt.quit()
        }
    }
}

Сообщения об уведомлениях

SystemTrayIcon может отображать сообщения об уведомлениях.

Следующий пример демонстрирует отображение сообщения об уведомлении с помощью showMessage() и использование сигнала messageClicked():

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    onMessageClicked: console.log("Message clicked")
    Component.onCompleted: showMessage("Message title", "Something important came up. Click this to know more.")
}

Доступность

Родная иконка системного трея в настоящее время доступна на следующих платформах:

  • Все менеджеры окон и независимые реализации треев для X11, которые реализуют спецификацию трея XEmbed freedesktop.org.
  • Все среды рабочего стола, которые реализуют спецификацию freedesktop.org D-Bus StatusNotifierItem, включая последние версии KDE и Unity.
  • Все поддерживаемые версии macOS. Обратите внимание, что для отображения сообщений с помощью showMessage() на OS X до версии 10.8 (Mountain Lion) необходимо установить систему уведомлений Growl.

Модуль Qt Labs Platform использует Qt Widgets в качестве резервного варианта на платформах, на которых отсутствует родная реализация. Поэтому приложения, использующие типы из модуля Qt Labs Platform, должны ссылаться на QtWidgets и использовать QApplication вместо QGuiApplication.

Для ссылки на библиотеку QtWidgets добавьте следующее в свой файл проекта qmake:

QT += widgets

Создайте экземпляр QApplication в main():

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

Примечание: Типы в модулях Qt.labs не гарантируют сохранение совместимости в будущих версиях.

См. также Меню.

Документация по свойствам

[только для чтения] available : bool

Это свойство указывает, доступен ли системный трей.

geometry : rect

Это свойство содержит геометрические данные иконки системного трея.

Это свойство было добавлено в Qt.labs.platform 1.1 (Qt 5.12).

icon.mask : bool

Это свойство содержит иконку системного трея.

SystemTrayIcon {
    icon.mask: true
    icon.source: "qrc:/images/tray-icon.png"
}

Это свойство QML было добавлено в Qt.labs.platform 1.1 (Qt 5.12).

menu : Меню

Это свойство содержит меню для иконки системного трея.

[только для чтения] supportsMessages : bool

Это свойство указывает, поддерживает ли иконка системного трея сообщения об уведомлениях.

См. также showMessage().

tooltip : string

Это свойство содержит всплывающую подсказку иконки системного трея.

visible : bool

Это свойство указывает, отображается ли иконка системного трея.

Значение по умолчанию — false.

Документация по сигналам

activated(ActivationReason reason)

Этот сигнал генерируется при активации иконки системного трея пользователем. Аргумент reason указывает способ активации иконки системного трея.

Доступные причины:

Константа Описание
SystemTrayIcon.Unknown Неизвестная причина
SystemTrayIcon.Context Запрошено контекстное меню для иконки системного трея
SystemTrayIcon.DoubleClick Иконка системного трея была дважды щелкнута
SystemTrayIcon.Trigger Иконка системного трея была щелкнута
SystemTrayIcon.MiddleClick Иконка системного трея была щелкнута средней кнопкой мыши

Примечание: Соответствующий обработчик — onActivated.

messageClicked()

Этот сигнал генерируется при нажатии пользователем на сообщение об уведомлении.

Примечание: Соответствующий обработчик — onMessageClicked.

См. также showMessage().

Документация по методам

void hide()

Скрывает иконку системного трея.

void show()

Отображает иконку системного трея.

void showMessage(string title, string message, MessageIcon icon, int msecs)

Отображает сообщение системного трея с заданным заголовком, сообщением и иконкой в течение времени, указанного в msecs.

Примечание: Сообщения системного трея зависят от настроек системы и предпочтений пользователя и могут вообще не отображаться. Поэтому не следует полагаться на них как на единственный способ предоставления критической информации.

См. также supportsMessages и messageClicked().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qt-labs-platform-systemtrayicon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API