Тип 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(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 может иметь меню, которое открывается при активации значка.
Следующий пример демонстрирует, как назначить Меню значку системного трея:
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::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"
} Эта документация была добавлена в 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)
Отображает сообщение в системном трее с заданным 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-5.14/qml-qt-labs-platform-systemtrayicon.html