O Qtawesome é uma biblioteca para adicionar ícones impressionantes da fonte ao seu aplicativo QT.
Estilos extras duotonos
Ver Changelog
Este é o lançamento da Fonte Awesome 6. Ele substitui o ramo principal, que ainda era uma versão 4 da Fonte Awesome. (Há também um ramo de 5 impressionantes, mas nunca foi fundido para o ramo principal/master.)
Esta versão não é completamente compatível com os lançamentos 4 e 5. A decisão foi tomada para uma nova versão limpa, mais adequada para o futuro. (Uma camada de compatibilidade está em desenvolvimento).
As versões anteriores usaram uma lista de ícones artesanais, esta versão possui uma lista gerada.
Tendo problemas com este novo lançamento?
master anterior na filial Fontawesome-4. ( master é descartado a favor do main ) A maneira mais fácil de incluir Qtaweome em seu projeto é copiar o diretório Qtawesome para sua árvore de projeto e adicionar o seguinte include() ao seu arquivo de projeto QT:
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)Agora você está pronto para ir! As fontes gratuitas estão incluídas neste projeto.
Para ativar a versão Pro, a configuração fontAwesomePro deve ser definida.
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) E os arquivos de fonte Pro precisam ser copiados para a pasta QtAwesome/fonts/pro . (Ex, Fonte Awesome 6 Brands-Regular-400.Otf, etc ...)
Você provavelmente deseja criar um único objeto Qtawesome para todo o seu aplicativo.
fa::QtAwesome* awesome = new fa::QtAwesome(qApp)
awesome-> initFontAwesome (); // This line is important as it loads the font and initializes the named icon map Em seguida, os ícones podem ser acessados através do método 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!");Para uma sintaxe mais curta (é possível a mais de fonte), é possível trazer o espaço para o nome da FA para o escopo de Curren:
using namespace fa ;
QPushButton* btn = new QPushButton(awesome-> icon (fa_solid, fa_wine_glass), "Cheers!");É possível criar algumas opções extras para os ícones. As opções disponíveis podem ser encontradas na lista de opções padrão
QVariantMap options;
options.insert( " color " , QColor( 255 , 0 , 0 ));
QPushButton* musicButton = new QPushButton(awesome-> icon (fa::fa_solid, fa::music, options), "Music"); A opção Padrão também pode ser ajustada através do método setDefaultOption .
Por exemplo, com ícones de desativação verde, é possível ligar:
awesome-> setDefaultOption ( " color-disabled " , QColor( 0 , 255 , 0 ));Também é possível renderizar um rótulo diretamente com esta fonte
QLabel* label = new QLabel(QChar(fa::fa_github));
label-> setFont (awesome-> font (fa::fa_brands, 16 ));Este exemplo registra um pintor personalizado para apoiar um ícone personalizado chamado 'duplicado', ele simplesmente desenha 2 "mais marcas".
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());Depois disso, este ícone pode ser usado com o nome de string fornecido:
awesome-> icon ( " duplicate " )As opções a seguir são os padrões na classe 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 );Itens extras para a versão Pro
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));Ao criar um ícone, ele primeiro preenche o mapa de opções com as opções padrão do objeto Qtawesome. Depois disso, as opções são expandidas/substituídas pelas opções fornecidas ao ícone.
É possível usar outro glifo por ícone-estado. Por exemplo, para fazer uma mudança de símbolo de ícone-unlock para bloqueado quando selecionado, você pode fornecer a seguinte opção:
options.insert( " text-selected " , QString(fa::fa_lock)); As opções de cor e texto têm a seguinte estrutura: keyname-iconmode-iconstate
Quando o iconmode normal está vazio
E iconstate on está em branco
Portanto, a lista de itens usados é:
No Mac OS X, colocando um ícone Qtawesome no menu QmainWindow, não funciona diretamente. Veja a seguinte edição: [#10]
Uma solução alternativa para esse problema é convertê -lo em um ícone Pixmap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fafa::user => fa::fa_user . Com os traços substituídos por sublinhados.fa::fa_regular , fa::fa_solidAgradecemos aos colaboradores deste projeto!
Muito obrigado a Dave Gandy e a outra fonte Contribuidores Awesome !! https://github.com/fortawesome/font-awesome e, claro, para a equipe/colaboradores do QT para fornecer esta excelente biblioteca C ++ cruzada.
As contribuições são bem -vindas! Sinta -se à vontade para bifurcar e enviar uma solicitação de tração através do Github.
Lista de contribuição feita com contrib.rocks.
MIT Licença. Copyright 2013-2022 - Software BITS confiável por Blommers It. https://blommersit.nl/
The Font Awesome font is licensed under the SIL Open Font License - https://scripts.sil.org/OFL The Font Awesome pictograms are licensed under the CC BY 3.0 License - https://creativecommons.org/licenses/by/3.0/ "Font Awesome by Dave Gandy - https://github.com/FortAwesome/Font-Awesome"