• 大小: 3.54MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: 其他
  • 标签: Qt  QWidget  

资源简介

自定义按钮,可设置为纯文本 、纯图片,或者文本和图片的组合,可自定义文本和图片的对齐方式。文本颜色 、边框也可自定义。适合用来做导航按钮 、操作按钮等。源码借鉴大神,是在大神的基础上做了一些修改。

资源截图

代码片段和文件信息

#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() << “load 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 == “left“) {
        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\iconhelper.cpp
     文件        2639  2017-09-16 14:10  NavBtn\iconhelper.h
     目录           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

评论

共有 条评论