Qtawesomeは、QTアプリケーションにフォントの素晴らしいアイコンを追加するライブラリです。
余分なデュートーンスタイル
changelogを表示します
これはFont Awesome 6リリースです。メインブランチを置き換えますが、これはまだフォントの素晴らしい4バージョンでした。 (Font Awesome 5ブランチもありますが、メイン/マスターブランチにマージされたことはありません。)
このリリースは、4と5のリリースと完全に逆方向に互換性がありません。この決定は、将来に適した新しいクリーンバージョンのために行われました。 (互換性レイヤーが開発中です)。
以前のバージョンでは、手作りのアイコンリストを使用しました。このバージョンには生成されたリストがあります。
この新しいリリースに問題がありますか?
masterブランチを見つけることができます。 ( masterはmainを支持してドロップされます)プロジェクトにQtaweomeを含める最も簡単な方法は、QTawesomeディレクトリをプロジェクトツリーにコピーして、次のことをQTプロジェクトファイルにinclude()することです。
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)今、あなたは行ってもいいです!無料のフォントはこのプロジェクトに含まれています。
Proバージョンをアクティブにするには、 fontAwesomePro設定を定義する必要があります。
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) Proフォントファイルは、 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ネームスペースを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 ));この例は、「Duplicate」という名前のカスタムアイコンをサポートするためのカスタムペインターを登録します。単に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のように、FONT Awesome 6フルスタイル名このプロジェクトの貢献者に感謝します!
Dave Gandy An The Other Fontの素晴らしい貢献者に感謝します!! https://github.com/fortawesome/font-awesome、そしてもちろん、この素晴らしいクロスプラットフォームC ++ライブラリを提供するためのQTチーム/貢献者に。
貢献は大歓迎です! FREKをお気軽にお問い合わせください。
contrib.rocksで作成された貢献リスト。
MITライセンス。 Copyright 2013-2022 -Blommers ITによる信頼性の高いビットソフトウェア。 https://blommersit.nl/
フォントの素晴らしいフォントは、SILオープンフォントライセンスの下でライセンスされています-https://scripts.sil.org/oflフォントの素晴らしいピクトグラムは、CCの下で3.0ライセンスでライセンスされています-creativecommons.org/licenses/licenses/by/3.0/」