Qtawesome เป็นห้องสมุดเพื่อเพิ่มไอคอนที่ยอดเยี่ยมในแอปพลิเคชัน QT ของคุณ
สไตล์ duotone พิเศษ
ดู Changelog
นี่คือฟอนต์ที่ยอดเยี่ยม 6 รุ่น มันแทนที่สาขาหลักซึ่งยังคงเป็นแบบอักษรที่ยอดเยี่ยม 4 รุ่น (นอกจากนี้ยังมีฟอนต์ 5 สาขาที่ยอดเยี่ยม แต่ไม่เคยรวมเข้ากับสาขาหลัก/มาสเตอร์)
การเปิดตัวนี้ ไม่ สามารถใช้งานได้อย่างสมบูรณ์กับการเปิดตัว 4 และ 5 การตัดสินใจถูกสร้างขึ้นมาสำหรับเวอร์ชันที่สะอาดใหม่ซึ่งเหมาะสำหรับอนาคต (เลเยอร์ความเข้ากันได้อยู่ระหว่างการพัฒนา)
เวอร์ชันก่อนหน้าใช้รายการไอคอนที่สร้างขึ้นด้วยมือเวอร์ชันนี้มีรายการที่สร้างขึ้น
มีปัญหากับรุ่นใหม่นี้หรือไม่?
master ก่อนหน้านี้ในสาขา Fontawesome-4 ( master ได้รับการสนับสนุน main ) วิธีที่ง่ายที่สุดในการรวม QTaweome ในโครงการของคุณคือ include() คัดลอกไดเรกทอรี QTAWESOD
CONFIG+=fontAwesomeFree
include(QtAwesome/QtAwesome.pri)ตอนนี้คุณไปได้ดี! ฟอนต์ฟรีรวมอยู่ในโครงการนี้
ในการเปิดใช้งานเวอร์ชัน Pro ควรกำหนดค่า fontAwesomePro
CONFIG+=fontAwesomePro
include(QtAwesome/QtAwesome.pri) และไฟล์ FON PRO จะต้องถูกคัดลอกไปยังโฟลเดอร์ 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!");สำหรับไวยากรณ์ที่สั้นกว่า (แบบอักษรที่น่ากลัวมากขึ้น) เป็นไปได้ที่จะนำเนมสเปซ FA เข้าสู่ขอบเขตเคอเรน:
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 ));ตัวอย่างนี้ลงทะเบียนจิตรกรที่กำหนดเองเพื่อรองรับไอคอนที่กำหนดเองชื่อ 'ซ้ำ' มันเพียงแค่วาด 2 "plus Marks"
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 หลังจากนั้นตัวเลือกจะถูกขยาย/เขียนทับโดยตัวเลือกที่ให้กับไอคอน
เป็นไปได้ที่จะใช้สัญลักษณ์อื่นต่อไอคอนรัฐ ตัวอย่างเช่นในการสร้างสวิตช์สัญลักษณ์ไอคอน UNLOCK เป็นล็อคเมื่อเลือกคุณสามารถระบุตัวเลือกต่อไปนี้:
options.insert( " text-selected " , QString(fa::fa_lock)); ตัวเลือกสีและข้อความมีโครงสร้างดังต่อไปนี้: keyname-iconmode-iconstate
เมื่อไอคอนโหมดปกติว่างเปล่า
และ iconstate on ว่างเปล่า
ดังนั้นรายการของรายการที่ใช้คือ:
บน Mac OS X การวางไอคอน qtawesome ในเมนู QmainWindow ไม่ทำงานโดยตรง ดูปัญหาต่อไปนี้: [#10]
วิธีแก้ปัญหาสำหรับปัญหานี้คือการแปลงเป็นไอคอน PixMap:
QAction* menuAction = new QAction( " test " );
menuAction-> setIcon (awesome-> icon (fa::fa_heart).pixmap( 32 , 32 ));fafa::user => fa::fa_user ด้วยขีดกลางที่ถูกแทนที่ด้วยขีดเส้นใต้fa::fa_regular , fa::fa_solidขอบคุณไปที่ผู้มีส่วนร่วมของโครงการนี้!
ขอบคุณมากไปที่ Dave Gandy ผู้มีส่วนร่วมที่ยอดเยี่ยมตัวอักษรอื่น ๆ !! https://github.com/fortawesome/font-awesome และแน่นอนให้กับทีม QT/ผู้มีส่วนร่วมในการจัดหาห้องสมุด C ++ ที่ยอดเยี่ยมนี้
ยินดีต้อนรับ! อย่าลังเลที่จะแยกและส่งคำขอดึงผ่าน GitHub
รายการผลงานทำด้วย contrib.rocks
ใบอนุญาต MIT ลิขสิทธิ์ 2013-2022 - ซอฟต์แวร์บิตที่เชื่อถือได้โดย Blommers IT https://blommersit.nl/
แบบอักษรที่ยอดเยี่ยมได้รับใบอนุญาตภายใต้ใบอนุญาต Font SIL Open - https://scripts.sil.org/ofl รูปแบบที่ยอดเยี่ยมได้รับใบอนุญาตภายใต้ CC โดยใบอนุญาต 3.0 - https://creativeCommons.org/licenses/by/3.0/