Тип QML SystemTrayIcon
Иконка системного трея. Подробнее...
| Заявление об импорте: | import Qt.labs.platform 1.1 |
| С тех пор: | Qt 5.8 |
| Наследует: |
Свойства
- 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