Тип SystemTrayIcon QML
Иконка системного лотка. Подробнее...
| Заявление об импорте: | import Qt.labs.platform 1.0 |
| С: | Qt 5.8 |
| Наследует: |
Свойства
- available : bool
- iconName : строка
- iconSource : url
- menu : Меню
- supportsMessages : bool
- tooltip : строка
- visible : bool
Сигналы
- void activated(ActivationReason reason)
- void 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 .
- Все среды рабочего стола, которые реализуют спецификацию freedesktop.org D-Bus StatusNotifierItem , включая последние версии KDE и Unity.
- Все поддерживаемые версии macOS. Обратите внимание, что система уведомлений Growl должна быть установлена для showMessage(), чтобы отображать сообщения на OS X до версии 10.8 (Mountain Lion).
Модуль 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.
Документация сигналов
void activated(ActivationReason reason)
Этот сигнал излучается, когда пользователь активирует значок системного лотка. Аргумент reason указывает, как был активирован значок системного лотка.
Доступные причины:
| Константа | Описание |
|---|---|
SystemTrayIcon.Unknown |
Неизвестная причина |
SystemTrayIcon.Context |
Запрошено контекстное меню для значка системного лотка |
SystemTrayIcon.DoubleClick |
Двойной щелчок по значку системного лотка |
SystemTrayIcon.Trigger |
Щелчок по значку системного лотка |
SystemTrayIcon.MiddleClick |
Щелчок по значку системного лотка средней кнопкой мыши |
void messageClicked()
Этот сигнал излучается, когда пользователь щелкает по сообщению уведомления.
См. также showMessage().
Документация методов
void hide()
Скрывает значок системного лотка.
void show()
Отображает значок системного лотка.
void showMessage(строка title, строка 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.9/qml-qt-labs-platform-systemtrayicon.html