Тип QML SystemTrayIcon
Иконка в системном трее. Подробнее...
| Заявление об импорте: | import Qt.labs.platform |
| С момента: | Qt 5.8 |
| Наследует: |
Свойства
- available : bool
- geometry : прямоугольник
-
icon
- icon.mask : bool
- icon.name : строка
- icon.source : 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
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.
- Все среды рабочего стола, которые реализуют спецификацию 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 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 : прямоугольник
Это свойство содержит геометрию иконки в системном трее.
Это свойство было введено в 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 : строка
Это свойство содержит всплывающую подсказку для иконки системного трея.
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(строка 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/qt-6.2/qml-qt-labs-platform-systemtrayicon.html