Значки в Qt Quick Controls
Qt Quick Controls поддерживает значки начиная с Qt 5.10. Это означает, что кнопки, элементы делегатов и пункты меню теперь могут отображать значок помимо текстовой метки.
Использование значков
AbstractButton и Action предоставляют следующие свойства для установки значков:
icon.nameicon.sourceicon.widthicon.heighticon.coloricon.cache
Значки темы ссылаются на имя, а обычные значки — на URL-адрес источника. Оба icon.name и icon.source могут быть установлены, чтобы гарантировать, что значок всегда будет найден. Если значок найден в теме, он всегда будет использоваться; даже если icon.source также установлен. Если значок не найден в теме, icon.source будет использован вместо него.
Button {
icon.name: "edit-cut"
icon.source: "images/cut.png"
} Каждый стиль Qt Quick Controls 2 запрашивает размер и цвет значка по умолчанию в соответствии с их рекомендациями, но можно переопределить их, установив свойства icon.width, icon.height, и icon.color.
Изображение, загружаемое значком, у которого width и height не установлены, зависит от типа используемого значка. Для значков темы будет выбран ближайший доступный размер. Для обычных значков поведение аналогично свойству sourceSize элемента Image.
Цвет значка по умолчанию задается так, чтобы он соответствовал цвету текста в разных состояниях. Для использования значка с оригинальными цветами установите цвет в "transparent".
Button {
icon.color: "transparent"
icon.source: "images/logo.png"
} Для кнопок свойство display можно использовать для управления способом отображения значка и текста внутри кнопки.
Свойство icon.cache управляет кэшированием изображения значка. Дополнительную информацию см. в cache.
Темы значков
Соответствующие темы значков должны следовать спецификации темы значков freedesktop, которую можно получить здесь: http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html.
Традиционно, только Linux и UNIX поддерживают темы значков на уровне платформы, но можно включить совместимую тему значков в приложение для использования значков темы на любой платформе.
Стандартные пути поиска тем значков зависят от платформы. В Linux и UNIX путь поиска будет использовать переменную среды XDG_DATA_DIRS, если она доступна. На всех платформах существует папка ресурсов :/icons в качестве резервного варианта. Пользовательские пути поиска тем значков можно задать с помощью QIcon::setThemeSearchPaths().
Следующий пример объединяет тему значков под названием mytheme в ресурсы приложения с помощью системы ресурсов Qt.
<RCC>
<qresource prefix="/">
<file>icons/mytheme/index.theme</file>
<file>icons/mytheme/32x32/myicon.png</file>
<file>icons/mytheme/32x32@2/myicon.png</file>
</qresource>
</RCC> Файл index.theme описывает общие атрибуты темы значков и перечисляет доступные каталоги значков темы:
[Icon Theme] Name=mytheme Comment=My Icon Theme Directories=32x32,32x32@2 [32x32] Size=32 Type=Fixed [32x32@2] Size=32 Scale=2 Type=Fixed
Чтобы использовать объединённую тему значков, приложение должно вызвать QIcon::setThemeName() перед загрузкой главного файла QML:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QIcon>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QIcon::setThemeName("mytheme"); // <--
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
} Теперь можно использовать именованные значки из объединённой темы значков, не указывая резервный источник:
Button {
icon.name: "myicon"
} Пример галереи и Wearable Demo предоставляют полностью работоспособные приложения с интегрированной темой значков.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qtquickcontrols2-icons.html