QTaWeome es una biblioteca para agregar iconos impresionantes de fuentes a su aplicación QT.
Estilos de duotona adicionales
Ver ChangeLog
Este es el lanzamiento de Font Awesome 6. Reemplaza la rama principal, que todavía era una versión Font Awesome 4. (También hay una rama de 5 Font Awesome 5, pero nunca se fusionó con la rama principal/maestra).
Este lanzamiento no es completamente compatible con las versiones 4 y 5. La decisión se tomó para una nueva versión limpia que más adecuada para el futuro. (Una capa de compatibilidad está en desarrollo).
Las versiones anteriores utilizaron una lista de iconos hechos a mano, esta versión tiene una lista generada.
¿Tiene problemas con este nuevo lanzamiento?
master anterior en la rama FontAwesome-4. ( master se deja caer a favor de main ) La forma más fácil de incluir Qtaweome en su proyecto es copiar el directorio QTAWASED a su árbol de proyecto y agregar lo siguiente include() a su archivo de proyecto QT:
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)¡Ahora estás listo para ir! Las fuentes gratuitas están incluidas en este proyecto.
Para activar la versión PRO, se debe definir la configuración de fontAwesomePro .
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) Y los archivos de fuente Pro deben copiarse en la carpeta QtAwesome/fonts/pro . (Ex, Font Awesome 6 Brands-Regular-400.OTF, etc ...)
Probablemente desee crear un solo objeto QTaWeome para toda su aplicación.
fa::QtAwesome* awesome = new fa::QtAwesome(qApp)
awesome-> initFontAwesome (); // This line is important as it loads the font and initializes the named icon map A continuación, se puede acceder a los iconos a través del 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 una sintaxis más corta (más de una fuente, es posible que es posible llevar el espacio de nombres FA al alcance de Curren:
using namespace fa ;
QPushButton* btn = new QPushButton(awesome-> icon (fa_solid, fa_wine_glass), "Cheers!");Es posible crear algunas opciones adicionales para los iconos. Las opciones disponibles se pueden encontrar en la lista de opciones predeterminadas
QVariantMap options;
options.insert( " color " , QColor( 255 , 0 , 0 ));
QPushButton* musicButton = new QPushButton(awesome-> icon (fa::fa_solid, fa::music, options), "Music"); La opción predeterminada también se puede ajustar a través del método setDefaultOption .
Por ejemplo, tener íconos de discapacitado verde, es posible llamar:
awesome-> setDefaultOption ( " color-disabled " , QColor( 0 , 255 , 0 ));También es posible renderizar una etiqueta directamente con esta fuente
QLabel* label = new QLabel(QChar(fa::fa_github));
label-> setFont (awesome-> font (fa::fa_brands, 16 ));Este ejemplo registra un pintor personalizado para admitir un icono personalizado llamado 'duplicado' simplemente dibuja 2 "más 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());Después de esto, este icono se puede usar con el nombre de cadena dado:
awesome-> icon ( " duplicate " )Las siguientes opciones son los valores predeterminados en la clase QTAWASED.
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 );Elementos adicionales para la versión 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));Al crear un icono, primero poca el mapa de opciones con las opciones predeterminadas del objeto QTaWeome. Después de eso, las opciones se expanden/sobrescriben por las opciones suministradas al icono.
Es posible usar otro glifo por estado de icono. Por ejemplo, para hacer un cambio de símbolo de icono-unión a bloqueado cuando se selecciona, puede suministrar la siguiente opción:
options.insert( " text-selected " , QString(fa::fa_lock)); Las opciones de color y texto tienen la siguiente estructura: keyname-iconmode-iconstate
Cuando IconMode Normal está vacío
E iconstate encendido está en blanco
Entonces, la lista de elementos utilizados es:
En Mac OS X, colocando un icono QTaWesome en el menú Qmainwindow, no funciona directamente. Vea el siguiente número: [#10]
Una solución para este problema es convertirlo en un icono de PixMap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fafa::user => fa::fa_user . Con los guiones reemplazados por subrayos.fa::fa_regular , fa::fa_solid¡Gracias a los contribuyentes de este proyecto!
¡Muchas gracias a Dave Gandy y la otra fuente contribuyentes increíbles! https://github.com/fortawesome/font-wesome y, por supuesto, para el equipo de QT/contribuyentes por suministrar esta gran biblioteca C ++ de plataforma cruzada.
¡Las contribuciones son bienvenidas! Siéntase libre de bifurcarse y enviar una solicitud de extracción a través de GitHub.
Lista de contribuciones hecha con contribuciones.
Licencia MIT. Copyright 2013-2022 - Software de bits confiable de Blommers IT. https://blommersit.nl/
La fuente Font Awesome tiene licencia bajo la licencia de fuente SIL Open - https://scripts.sil.org/ofl Los pictos impresionantes de la fuente tienen licencia bajo el CC por 3.0 Licencia - https://createivecommons.org/licenses/3.0/ "Font Awesome by dave gandy - https://github.com/fortes