Qtawesome adalah perpustakaan untuk menambahkan ikon luar biasa ke aplikasi QT Anda.
Gaya Duotone Ekstra
Lihat Changelog
Ini adalah rilis Font Awesome 6. Ini menggantikan cabang utama, yang masih merupakan versi font mengagumkan 4. (Ada juga cabang 5 font yang mengagumkan, tetapi tidak pernah bergabung dengan cabang utama/master.)
Rilis ini tidak sepenuhnya kompatibel dengan rilis 4 dan 5. Keputusan itu dibuat untuk versi bersih baru yang lebih cocok untuk masa depan. (Lapisan kompatibilitas sedang dalam pengembangan).
Versi sebelumnya menggunakan daftar ikon kerajinan tangan, versi ini memiliki daftar yang dihasilkan.
Memiliki masalah dengan rilis baru ini?
master sebelumnya di cabang Fontawesome-4. ( master dijatuhkan untuk main ) Cara termudah untuk memasukkan qtaweome dalam proyek Anda adalah dengan menyalin direktori Qtawesome ke pohon proyek Anda dan menambahkan yang berikut ini include() ke file proyek QT Anda:
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)Sekarang Anda baik untuk pergi! Font gratis termasuk dalam proyek ini.
Untuk mengaktifkan versi Pro, fontAwesomePro config harus ditentukan.
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) Dan file Pro Font perlu disalin ke folder QtAwesome/fonts/pro . (ex, font mengagumkan 6 merek-regular-400.otf, dll ...)
Anda mungkin ingin membuat objek Qtawesome tunggal untuk seluruh aplikasi Anda.
fa::QtAwesome* awesome = new fa::QtAwesome(qApp)
awesome-> initFontAwesome (); // This line is important as it loads the font and initializes the named icon map Selanjutnya ikon dapat diakses melalui metode 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!");Untuk sintaks yang lebih pendek (lebih banyak font aweseome) dimungkinkan untuk membawa namespace fa ke dalam lingkup Curren:
using namespace fa ;
QPushButton* btn = new QPushButton(awesome-> icon (fa_solid, fa_wine_glass), "Cheers!");Dimungkinkan untuk membuat beberapa opsi tambahan untuk ikon. Opsi yang tersedia dapat ditemukan di daftar opsi default
QVariantMap options;
options.insert( " color " , QColor( 255 , 0 , 0 ));
QPushButton* musicButton = new QPushButton(awesome-> icon (fa::fa_solid, fa::music, options), "Music"); Opsi default juga dapat disesuaikan melalui metode setDefaultOption .
Misalnya memiliki ikon cacat hijau, dimungkinkan untuk menelepon:
awesome-> setDefaultOption ( " color-disabled " , QColor( 0 , 255 , 0 ));Juga dimungkinkan untuk membuat label secara langsung dengan font ini
QLabel* label = new QLabel(QChar(fa::fa_github));
label-> setFont (awesome-> font (fa::fa_brands, 16 ));Contoh ini mendaftarkan pelukis khusus untuk mendukung ikon khusus yang bernama 'duplikat' itu hanya menggambar 2 "plus tanda".
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());Setelah ini, ikon ini dapat digunakan dengan nama string yang diberikan:
awesome-> icon ( " duplicate " )Opsi berikut adalah default di kelas 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 );Item tambahan untuk versi 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));Saat membuat ikon, pertama-tama mengisi opsi-peta dengan opsi default dari objek Qtawesome. Setelah itu opsi diperluas/ditimpa oleh opsi yang dipasok ke ikon.
Dimungkinkan untuk menggunakan mesin terbang lain per ikon-state. Misalnya untuk membuat sakelar simbol ikon-unlock ke terkunci saat dipilih, Anda dapat menyediakan opsi berikut:
options.insert( " text-selected " , QString(fa::fa_lock)); Opsi warna dan teks memiliki struktur berikut: keyname-iconmode-iconstate
Saat IconMode Normal kosong
Dan Iconstate on kosong
Jadi daftar item yang digunakan adalah:
Di Mac OS X, menempatkan ikon Qtawesome di menu QMainWindow, tidak berfungsi secara langsung. Lihat masalah berikut: [#10]
Solusi untuk masalah ini adalah mengubahnya menjadi ikon pixmap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fa Namespacefa::user => fa::fa_user . Dengan tanda hubung digantikan oleh garis bawah.fa::fa_regular , fa::fa_solidTerima kasih kepada para kontributor proyek ini!
Terima kasih banyak kepada Dave Gandy dan kontributor luar biasa lainnya !! https://github.com/fortawesome/font-awesome dan tentu saja untuk tim/kontributor QT untuk memasok perpustakaan C ++ cross-platform yang hebat ini.
Kontribusi dipersilakan! Jangan ragu untuk membayar dan mengirim permintaan tarik melalui GitHub.
Daftar kontribusi dibuat dengan contrib.rocks.
Lisensi MIT. Hak Cipta 2013-2022 - Perangkat lunak BITS yang andal oleh Blommers IT. https://blommersit.nl/
Font Awesome Font dilisensikan di bawah lisensi Sil Open Font - https://scripts.sil.org/ofl font pictograms yang mengagumkan dilisensikan di bawah lisensi CC dengan 3.0 - https://creativecommons.org/by/by/3.0/ "font bykreativeMons.org/by/3.0