Spec-Zone.ru › Qt 5.13

Тип QML SystemTrayIcon

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

Оператор импорта: import Qt.labs.platform 1.1
С момента: Qt 5.8
Наследует:

QtObject

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

Свойства

  • available : bool
  • geometry : rect
  • icon
    • icon.source : url
    • icon.name : string
    • icon.mask : bool
  • 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 может иметь меню, которое открывается при активации иконки.

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

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. Обратите внимание, что система уведомлений Growl должна быть установлена для отображения сообщений showMessage() в OS X до версии 10.8 (Mountain Lion).

Модуль 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.source : url

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

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)

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

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

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

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

Spec-Zone.ru

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