QtAwesome est une bibliothèque pour ajouter des icônes impressionnantes de police à votre application QT.
Styles de duotone supplémentaires
Voir Changelog
Ceci est la version Awesome 6. Il remplace la branche principale, qui était toujours une version de police impressionnante 4. (Il y a aussi une succursale de la police Awesome 5, mais n'a jamais été fusionnée à la branche principale / maître.)
Cette version n'est pas complètement compatible avec les versions 4 et 5. La décision a été prise pour une nouvelle version propre qui a mieux adapté pour l'avenir. (Une couche de compatibilité est en développement).
Les versions précédentes ont utilisé une liste d'icônes fabriquée à la main, cette version a une liste générée.
Vous avez des problèmes avec cette nouvelle version?
master précédente dans la branche Fontawesome-4. ( master est abandonné en faveur de main ) La façon la plus simple d'inclure Qtaweome dans votre projet est de copier le répertoire QtAwesome dans votre arbre de projet et d'ajouter les suivants include() à votre fichier de projet QT:
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)Maintenant, vous êtes prêt à partir! Les polices gratuites sont incluses dans ce projet.
Pour activer la version pro, la configuration fontAwesomePro doit être définie.
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) Et les fichiers de police pro doivent être copiés dans le dossier QtAwesome/fonts/pro . (Ex, Font Awesome 6 marques-régulières-400.otf, etc ...)
Vous souhaitez probablement créer un seul objet QtAwesEAM pour toute votre application.
fa::QtAwesome* awesome = new fa::QtAwesome(qApp)
awesome-> initFontAwesome (); // This line is important as it loads the font and initializes the named icon map Ensuite, les icônes sont accessibles via la méthode 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!");Pour une syntaxe plus courte (plus de police comme) est possible pour amener l'espace de noms FA dans la portée de Curren:
using namespace fa ;
QPushButton* btn = new QPushButton(awesome-> icon (fa_solid, fa_wine_glass), "Cheers!");Il est possible de créer des options supplémentaires pour les icônes. Les options disponibles peuvent être trouvées dans la liste des options par défaut
QVariantMap options;
options.insert( " color " , QColor( 255 , 0 , 0 ));
QPushButton* musicButton = new QPushButton(awesome-> icon (fa::fa_solid, fa::music, options), "Music"); L'option par défaut peut également être ajustée via la méthode setDefaultOption .
Par exemple, ayant des icônes handicapées vertes, il est possible d'appeler:
awesome-> setDefaultOption ( " color-disabled " , QColor( 0 , 255 , 0 ));Il est également possible de rendre une étiquette directement avec cette police
QLabel* label = new QLabel(QChar(fa::fa_github));
label-> setFont (awesome-> font (fa::fa_brands, 16 ));Cet exemple enregistre un peintre personnalisé pour soutenir une icône personnalisée nommée 'Duplicate', il dessine simplement 2 "plus marques".
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());Après cela, cette icône peut être utilisée avec le nom de chaîne donné:
awesome-> icon ( " duplicate " )Les options suivantes sont les valeurs par défaut de la 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 );Éléments supplémentaires pour la version 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));Lors de la création d'une icône, il remplit d'abord la carte des options avec les options par défaut de l'objet QtAwesEAM. Après cela, les options sont élargies / écrasées par les options fournies à l'icône.
Il est possible d'utiliser un autre glyphe par état icône. Par exemple, pour faire un commutateur de symbole d'icône à verrouiller lorsqu'il est sélectionné, vous pouvez fournir l'option suivante:
options.insert( " text-selected " , QString(fa::fa_lock)); Les options de couleur et de texte ont la structure suivante: keyname-iconmode-iconstate
Lorsque la normale iconmode est vide
Et iconstate on est vide
Ainsi, la liste des éléments utilisés est:
Sur Mac OS X, en plaçant une icône Qtawesome dans le menu QMainwindow, ne fonctionne pas directement. Voir le problème suivant: [# 10]
Une solution de contournement pour ce problème consiste à la convertir en une icône PixMap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fafa::user => fa::fa_user . Avec les tirets remplacés par des soulignements.fa::fa_regular , fa::fa_solidMerci aux contributeurs de ce projet!
Merci beaucoup à Dave Gandy et aux autres contributeurs impressionnants !! https://github.com/fortawesome/font-awesome et bien sûr à l'équipe / contributeurs QT pour fournir cette grande bibliothèque C ++ multiplateforme.
Les contributions sont les bienvenues! N'hésitez pas à fourrer et à envoyer une demande de traction via GitHub.
Liste des contributions faites avec contrib.Rocks.
Licence MIT. Copyright 2013-2022 - Logiciel de bits fiable par le blommers. https://blmemersit.nl/
La police impressionnante est licenciée sous la licence SIL Open de la police - https://scripts.sil.org/ofl Les pictogrammes impressionnants de police sont sous licence CC par 3.0 - https://creativecommons.org/licenses/by/3.0/ "Pontweson by Dave"