Spec-Zone.ru › Qt 5.11

Тип SystemTrayIcon QML

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

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

QtObject

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

Свойства

  • available : bool
  • iconName : строка
  • iconSource : url
  • menu : Меню
  • supportsMessages : bool
  • tooltip : строка
  • 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
    iconSource: "qrc:/images/tray-icon.png"

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

Меню лотка

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

Следующий пример иллюстрирует, как назначить Меню иконке системного лотка:

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

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

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

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

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

SystemTrayIcon {
    visible: true
    iconSource: "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

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

iconName : строка

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

См. также iconSource и QIcon::fromTheme().

iconSource : url

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

См. также iconName.

menu : Меню

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

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

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

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

tooltip : строка

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

visible : bool

Это свойство содержит информацию о том, видима ли иконка системного лотка.

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

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

activated(ActivationReason reason)

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

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

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

messageClicked()

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

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

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

void hide()

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

void show()

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

void showMessage(строка title, строка message, MessageIcon icon, целое 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/archives/qt-5.11/qml-qt-labs-platform-systemtrayicon.html

Spec-Zone.ru

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