Тип SystemTrayIcon QML
Значок системного трея. Подробнее...
| Заявление об импорте: | 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.
- Все среды рабочего стола, которые реализуют спецификацию 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