Qtawesome - это библиотека, чтобы добавить Font Awesome значки в ваше приложение QT.
Дополнительные стили Duotone
Посмотреть изменение изменений
Это релиз Font Awesome 6. Он заменяет основную ветвь, которая все еще была версией Awesome 4 шрифта. (Там также есть филиал для шрифта Awesome 5, но никогда не был объединен с главной/главной ветвью.)
Этот релиз не совсем назад, совместим с выпусками 4 и 5. Решение было принято для новой чистой версии, которая лучше подходит для будущего. (Уровень совместимости находится в разработке).
В предыдущих версиях использовался список значков ручной работы, эта версия имеет сгенерированный список.
У вас проблемы с этим новым релизом?
master ветвь в филиале Fontawesome-4. ( master сброшен в пользу main ) Самый простой способ включить qtaweome в ваш проект - скопировать каталог Qtawesome в дерево проекта и добавить следующее include() в ваш файл проекта QT:
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)Теперь тебе приятно идти! Бесплатные шрифты включены в этот проект.
Чтобы активировать Pro версию, должна быть определена конфигурация fontAwesomePro .
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) И файлы Pro Font должны быть скопированы в папку QtAwesome/fonts/pro . (Ex, Font Awesome 6 Brands-Regular-400.OTF и т. Д.)
Вы, вероятно, хотите создать один объект QTawesome для всего вашего приложения.
fa::QtAwesome* awesome = new fa::QtAwesome(qApp)
awesome-> initFontAwesome (); // This line is important as it loads the font and initializes the named icon map Затем можно получить доступ к значкам с помощью метода awesome->icon .
// The most performant operation the get an icon
QPushButton* btn = new QPushButton(awesome-> icon (fa::fa_solid, fa::fa_wine_glass), "Cheers!");
// You can also use 'string' names to access the icons.
QPushButton* btn = new QPushButton(awesome-> icon ( " fa-solid fa-coffee " ), "Black please!");
// The string items passed to the icon method can be used without the 'fa-' prefix
QPushButton* btn = new QPushButton(awesome-> icon ( " solid coffee " ), "Black please!");
// The style is also optional and will fallback to the 'solid' style
QPushButton* btn = new QPushButton(awesome-> icon ( " coffee " ), "Black please!");Для более короткого синтаксиса (более широкий шрифт, как), возможно, внести пространство имен FA в сферу сражения:
using namespace fa ;
QPushButton* btn = new QPushButton(awesome-> icon (fa_solid, fa_wine_glass), "Cheers!");Можно создать несколько дополнительных вариантов для значков. Доступные параметры можно найти в списке параметров по умолчанию
QVariantMap options;
options.insert( " color " , QColor( 255 , 0 , 0 ));
QPushButton* musicButton = new QPushButton(awesome-> icon (fa::fa_solid, fa::music, options), "Music"); Опция по умолчанию также может быть скорректирована с помощью метода setDefaultOption .
Например, наличие значков с отключенными зелеными, это можно позвонить:
awesome-> setDefaultOption ( " color-disabled " , QColor( 0 , 255 , 0 ));Также можно представить этикетку непосредственно с помощью этого шрифта
QLabel* label = new QLabel(QChar(fa::fa_github));
label-> setFont (awesome-> font (fa::fa_brands, 16 ));Этот пример регистрирует пользовательский художник для поддержки пользовательской иконки под названием «Дубликат», он просто рисует 2 «плюс марки».
class DuplicateIconPainter : public QtAwesomeIconPainter
{
public:
virtual void paint (QtAwesome* awesome, QPainter* painter, const QRect& rectIn, QIcon::Mode mode, QIcon::State state, const QVariantMap& options)
{
int drawSize = qRound (rectIn. height () * 0.5 );
int offset = rectIn. height () / 4 ;
QChar chr = QChar ( static_cast < int >(fa::plus));
int st = fa::fa_solid;
painter-> setFont (st, awesome-> font (drawSize));
painter-> setPen ( QColor ( 100 , 100 , 100 ));
painter-> drawText ( QRect ( QPoint (offset * 2 , offset * 2 ),
QSize (drawSize, drawSize)), chr ,
QTextOption (Qt::AlignCenter|Qt::AlignVCenter));
painter-> setPen ( QColor ( 50 , 50 , 50 ));
painter-> drawText ( QRect ( QPoint (rectIn. width () - drawSize-offset, rectIn. height () - drawSize - offset),
QSize (drawSize, drawSize) ), chr ,
QTextOption (Qt::AlignCenter | Qt::AlignVCenter));
}
};
awesome-> give ( " duplicate " , new DuplicateIconPainter());После этого этот значок можно использовать с данным именем строки:
awesome-> icon ( " duplicate " )Следующие варианты - значения по умолчанию в классе QTawesome.
setDefaultOption ( " color " , QApplication::palette().color(QPalette::Normal, QPalette::Text));
setDefaultOption ( " color-disabled " , QApplication::palette().color(QPalette::Disabled, QPalette::Text));
setDefaultOption ( " color-active " , QApplication::palette().color(QPalette::Active, QPalette::Text));
setDefaultOption ( " color-selected " , QApplication::palette().color(QPalette::Active, QPalette::Text));
setDefaultOption ( " text " , QString()); // internal option
setDefaultOption ( " text-disabled " , QString());
setDefaultOption ( " text-active " , QString());
setDefaultOption ( " text-selected " , QString());
setDefaultOption ( " scale-factor " , 0.9 );Дополнительные элементы для профессиональной версии
setDefaultOption ( " duotone-color " , QApplication::palette().color(QPalette::Normal, QPalette::BrightText));
setDefaultOption ( " duotone-color-disabled " , QApplication::palette().color(QPalette::Disabled, QPalette::BrightText));
setDefaultOption ( " duotone-color-active " , QApplication::palette().color(QPalette::Active, QPalette::BrightText));
setDefaultOption ( " duotone-color-selected " , QApplication::palette().color(QPalette::Active, QPalette::BrightText));При создании значка он сначала заполняет карту параметров с параметрами по умолчанию из объекта QTawesome. После этого варианты расширяются/перезаписаны вариантами, предоставленными на значок.
Можно использовать еще один глиф в соответствии с состоянием. Например, чтобы сделать переключатель символа и символа, не заблокированного, при выборе, вы можете предоставить следующую опцию:
options.insert( " text-selected " , QString(fa::fa_lock)); Варианты цвета и текста имеют следующую структуру: keyname-iconmode-iconstate
Когда нормный икол норм пуст
И Iconstate on Is Blank
Итак, список используемых элементов:
На Mac OS X, размещение значка QTawesome в меню QmainWindow, не работает напрямую. Смотрите следующий вопрос: [#10]
Обходной путь для этой проблемы - преобразование его в значок Pixmap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fafa::user => fa::fa_user . С заменой чертов поднятыми.fa::fa_regular , fa::fa_solidСпасибо участникам этого проекта!
Большое спасибо Дейву Ганди, а другому шрифту, потрясающему участникам !! https://github.com/fortawesome/font-awesome и, конечно же, команде/участникам QT для поставки этой великой кросс-платформенной библиотеки C ++.
Взносы приветствуются! Не стесняйтесь вилка и отправляйте запрос на привлечение через GitHub.
Список вкладов, сделанный с помощью ountib.rocks.
MIT Лицензия. Copyright 2013-2022 - надежное программное обеспечение Bits By Blommers IT. https://blommersit.nl/
Font Awesome Font лицензирован по лицензии SIL Open Font - https://scripts.sil.org/ofl.