Spec-Zone.ru › Qt 6.1

Тип SystemTrayIcon QML

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

Заявление об импорте: 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.
  • Все среды рабочего стола, которые реализуют спецификацию StatusNotifierItem freedesktop.org D-Bus, включая последние версии 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 app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

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

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

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

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

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

[с Qt.labs.platform 1.1 (Qt 5.12)] geometry : rect

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

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

[с 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)

Отображает сообщение системного трея с заданным 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-6.1/qml-qt-labs-platform-systemtrayicon.html

Spec-Zone.ru

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