Spec-Zone.ru › Qt 5.14

Тип 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(reason)
  • messageClicked()

Методы

  • void hide()
  • void show()
  • void showMessage(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.
  • Все среды рабочего стола, которые реализуют спецификацию D-Bus StatusNotifierItem freedesktop.org, включая последние версии 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"
}

Эта документация была добавлена в Qt.labs.platform 1.1 (Qt 5.12).

menu : Меню

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

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

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

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

tooltip : string

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

visible : bool

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

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

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

activated(reason)

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

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

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

messageClicked()

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

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

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

void hide()

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

void show()

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

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

Отображает сообщение в системном трее с заданным title, message и icon на время, указанное в msecs.

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

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

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

Spec-Zone.ru

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