資源簡介
自定義按鈕,可設(shè)置為純文本 、純圖片,或者文本和圖片的組合,可自定義文本和圖片的對齊方式。文本顏色 、邊框也可自定義。適合用來做導(dǎo)航按鈕 、操作按鈕等。源碼借鑒大神,是在大神的基礎(chǔ)上做了一些修改。

代碼片段和文件信息
#include?“iconhelper.h“
Iconhelper?*Iconhelper::self?=?0;
Iconhelper?*Iconhelper::Instance()
{
????if?(!self)?{
????????QMutex?mutex;
????????QMutexLocker?locker(&mutex);
????????if?(!self)?{
????????????self?=?new?Iconhelper;
????????}
????}
????return?self;
}
Iconhelper::Iconhelper(Qobject?*)?:?Qobject(qApp)
{
????int?fontId?=?QFontDatabase::addApplicationFont(“:/font/fontawesome-webfont.ttf“);
????QStringList?fontName?=?QFontDatabase::applicationFontFamilies(fontId);
????if?(fontName.count()?>?0)?{
????????iconFont?=?QFont(fontName.at(0));
????}?else?{
????????qDebug()?<“l(fā)oad?fontawesome-webfont.ttf?error“;
????}
}
void?Iconhelper::setIcon(QLabel?*lab?QChar?c?quint32?size)
{
????iconFont.setPointSize(size);
????lab->setFont(iconFont);
????lab->setText(c);
}
void?Iconhelper::setIcon(QAbstractButton?*btn?QChar?c?quint32?size)
{
????iconFont.setPointSize(size);
????btn->setFont(iconFont);
????btn->setText(c);
}
QPixmap?Iconhelper::getPixmap(const?QString?&color?QChar?c?quint32?size
??????????????????????????????quint32?pixWidth?quint32?pixHeight)
{
????QPixmap?pix(pixWidth?pixHeight);
????pix.fill(Qt::transparent);
????QPainter?painter;
????painter.begin(&pix);
????painter.setRenderHints(QPainter::Antialiasing?|?QPainter::TextAntialiasing);
????painter.setPen(QColor(color));
????painter.setBrush(QColor(color));
????iconFont.setPointSize(size);
????painter.setFont(iconFont);
????painter.drawText(pix.rect()?Qt::AlignCenter?c);
????painter.end();
????return?pix;
}
QPixmap?Iconhelper::getPixmap(QToolButton?*btn?bool?normal)
{
????QPixmap?pix;
????int?index?=?btns.indexOf(btn);
????if?(index?>=?0)?{
????????if?(normal)?{
????????????pix?=?pixNormal.at(index);
????????}?else?{
????????????pix?=?pixDark.at(index);
????????}
????}
????return?pix;
}
void?Iconhelper::setstyle(QWidget?*widget?const?QString?&type?int?borderWidth?const?QString?&borderColor
??????????????????????????const?QString?&normalBgColor?const?QString?&darkBgColor
??????????????????????????const?QString?&normalTextColor?const?QString?&darkTextColor)
{
????QString?strBorder;
????if?(type?==?“top“)?{
????????strBorder?=?QString(“border-width:%1px?0px?0px?0px;padding:%1px?%2px?%2px?%2px;“)
????????????????.arg(borderWidth).arg(borderWidth?*?2);
????}?else?if?(type?==?“right“)?{
????????strBorder?=?QString(“border-width:0px?%1px?0px?0px;padding:%2px?%1px?%2px?%2px;“)
????????????????.arg(borderWidth).arg(borderWidth?*?2);
????}?else?if?(type?==?“bottom“)?{
????????strBorder?=?QString(“border-width:0px?0px?%1px?0px;padding:%2px?%2px?%1px?%2px;“)
????????????????.arg(borderWidth).arg(borderWidth?*?2);
????}?else?if?(type?==?“l(fā)eft“)?{
????????strBorder?=?QString(“border-width:0px?0px?0px?%1px;padding:%2px?%2px?%2px?%1px;“)
????????????????.arg(borderWidth).arg(borderWidth?*?2);
????}
????QStringList?qss;
????qss.append(QString(“QWidget[flag=\“%1\“]?QAbstractButt
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-28?16:03??NavBtn\
?????文件????????1033??2019-01-16?10:07??NavBtn\.qmake.stash
?????目錄???????????0??2019-01-17?11:11??NavBtn\css\
?????文件????????5275??2018-09-21?14:41??NavBtn\css\black.css
?????文件??????????91??2019-01-17?11:11??NavBtn\css\blue.css
?????目錄???????????0??2019-01-17?10:17??NavBtn\font\
?????文件??????141564??2014-10-12?11:12??NavBtn\font\fontawesome-webfont.ttf
?????文件?????1839412??2018-04-07?13:23??NavBtn\font\msyh.ttf
?????文件??????842216??2014-08-19?21:10??NavBtn\font\timesbd.ttf
?????文件?????4142944??2013-04-06?01:45??NavBtn\font\WenQuanYiMicroHei.ttf
?????文件????????9597??2019-01-17?10:20??NavBtn\icon
?????文件????????2639??2017-09-16?14:10??NavBtn\icon
?????目錄???????????0??2019-01-17?15:36??NavBtn\image\
?????文件????????9662??2018-03-13?09:18??NavBtn\image\box.ico
?????文件????????1423??2016-11-12?13:21??NavBtn\image\clean.png
?????文件????????1371??2016-11-12?13:21??NavBtn\image\safe.png
?????文件????????1471??2016-11-12?13:21??NavBtn\image\youhua.png
?????文件????????1531??2019-01-28?16:03??NavBtn\main.cpp
?????文件????????1146??2019-01-17?15:34??NavBtn\NavBtn.pro
?????文件?????????699??2019-01-17?15:30??NavBtn\NavBtn_resource.rc
?????文件???????19846??2019-01-17?14:29??NavBtn\navbutton.cpp
?????文件???????11013??2019-01-22?14:23??NavBtn\navbutton.h
?????文件?????????421??2019-01-17?11:08??NavBtn\res.qrc
?????文件?????????867??2019-01-17?15:48??NavBtn\VersionInfo.rc
?????文件????????6302??2019-01-17?14:36??NavBtn\widget.cpp
?????文件?????????632??2019-01-16?10:26??NavBtn\widget.h
評論
共有 條評論