Qtawesome은 QT 응용 프로그램에 글꼴 멋진 아이콘을 추가하는 라이브러리입니다.
추가 듀오 톤 스타일
changelog를 봅니다
이것은 Font Awesome 6 릴리스입니다. 메인 브랜치를 대체하는데, 여전히 Font Awesome 4 버전이었습니다. (글꼴 Awesome 5 Branch도 있지만 메인/마스터 브랜치와 합병되지 않았습니다.)
이 릴리스는 4 및 5 릴리스와 호환되지 않습니다 . 이 결정은 미래에 더 적합한 새로운 깨끗한 버전에 대한 결정을 내 렸습니다. (호환 층이 개발 중입니다).
이전 버전에는 손으로 만들어진 아이콘 목록이 사용 되었으며이 버전에는 생성 된 목록이 있습니다.
이 새로운 릴리스에 문제가 있습니까?
master 브랜치를 찾을 수 있습니다. ( master main 에 유리하게 떨어졌다) 프로젝트에 Qtaweome을 포함시키는 가장 쉬운 방법은 Qtawesome 디렉토리를 프로젝트 트리에 복사하고 다음과 include() QT 프로젝트 파일에 추가하는 것입니다.
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)이제 당신은 가기에 좋습니다! 이 프로젝트에는 무료 글꼴이 포함되어 있습니다.
Pro 버전을 활성화하려면 fontAwesomePro 구성을 정의해야합니다.
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) 프로 글꼴 파일은 QtAwesome/fonts/pro 폴더에 복사해야합니다. (예 : 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!");더 짧은 구문 (더 많은 글꼴 Aweseome과 같은)의 경우 FA 네임 스페이스를 Curren 범위로 가져 오는 데 가능합니다.
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 ));이 예제는 'Duplication'이라는 사용자 정의 아이콘을 지원하기위한 사용자 정의 화가를 등록합니다. 단순히 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
IconMode Normal이 비어있을 때
그리고 Iconstate on은 비어 있습니다
따라서 사용 된 항목 목록은 다음과 같습니다.
Mac OS X에서는 QMainWindow 메뉴에 QTawesome 아이콘을 배치하는 것이 직접 작동하지 않습니다. 다음과 같은 문제를 참조하십시오 : [#10]
이 문제에 대한 해결 방법은 PixMap 아이콘으로 변환하는 것입니다.
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fa 네임 스페이스에 모든 것이 네임 스페이스에 있습니다fa::user => fa::fa_user . 대시가 밑줄로 교체 된 상태에서.fa::fa_regular , fa::fa_solid이 프로젝트의 기고자들에게 감사드립니다!
많은 감사합니다. Dave Gandy에게 다른 글꼴 멋진 기고자들에게 가십시오 !! https://github.com/fortawesome/font-awesome 및 물론이 훌륭한 크로스 플랫폼 C ++ 라이브러리를 제공 한 QT 팀/기고자에게.
기부금을 환영합니다! GitHub를 통해 포크하고 풀 요청을 보내십시오.
Contrib.Rocks로 만든 기여 목록.
MIT 라이센스. Copyright 2013-2022- 신뢰할 수있는 비트 소프트웨어의 Blommers. https://blommersit.nl/
글꼴 멋진 글꼴은 SIL Open Font 라이센스에 따라 라이센스가 부여됩니다 -https://scripts.sil.org/ofl 글꼴 멋진 사진은 CC에 따라 3.0 라이센스로 라이센스가 부여됩니다.