#ifndef ICONHELPER_H #define ICONHELPER_H #include <QtCore> #include <QtGui> #if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) #include <QtWidgets> #endif //图形字体处理类 class IconHelper : public QObject { Q_OBJECT public: static IconHelper *Instance(); explicit IconHelper(QObject *parent = 0); void setIcon(QLabel *lab, QChar c, quint32 size = 12); void setIcon(QAbstractButton *btn, QChar c, quint32 size = 12); QPixmap getPixmap(const QString &color, QChar c, quint32 size = 12, quint32 pixWidth = 10, quint32 pixHeight = 10); //根据按钮获取该按钮对应的图标 QPixmap getPixmap(QToolButton *btn, bool normal); //指定导航面板样式,不带图标 static void setStyle(QWidget *widget, const QString &type = "left", int borderWidth = 3, const QString &borderColor = "#029FEA", const QString &normalBgColor = "#292F38", const QString &darkBgColor = "#1D2025", const QString &normalTextColor = "#54626F", const QString &darkTextColor = "#FDFDFD"); //指定导航面板样式,带图标和效果切换 void setStyle(QWidget *widget, QList<QToolButton *> btns, QList<int> pixChar, quint32 iconSize = 9, quint32 iconWidth = 10, quint32 iconHeight = 10, const QString &type = "left", int borderWidth = 3, const QString &borderColor = "#029FEA", const QString &normalBgColor = "#292F38", const QString &darkBgColor = "#1D2025", const QString &normalTextColor = "#54626F", const QString &darkTextColor = "#FDFDFD"); //指定导航按钮样式,带图标和效果切换 void setStyle(QFrame *frame, QList<QToolButton *> btns, QList<int> pixChar, quint32 iconSize = 9, quint32 iconWidth = 10, quint32 iconHeight = 10, const QString &normalBgColor = "#2FC5A2", const QString &darkBgColor = "#3EA7E9", const QString &normalTextColor = "#EEEEEE", const QString &darkTextColor = "#FFFFFF"); protected: bool eventFilter(QObject *watched, QEvent *event); private: static IconHelper *self; //对象自身 QFont iconFont; //图形字体 QList<QToolButton *> btns; //按钮队列 QList<QPixmap> pixNormal; //正常图片队列 QList<QPixmap> pixDark; //加深图片队列 }; #endif // ICONHELPER_H