资源简介
自定义按钮,可设置为纯文本 、纯图片,或者文本和图片的组合,可自定义文本和图片的对齐方式。文本颜色 、边框也可自定义。适合用来做导航按钮 、操作按钮等。源码借鉴大神,是在大神的基础上做了一些修改。
代码片段和文件信息
#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\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
- 上一篇:Modelica&MWorks培训教程
- 下一篇:萤石云摄像头直播带云台控制代码
相关资源
- 传智播客Qt5教程2016
- QT5.7串口助手VS2015下开发
- 基于QT股票交易系统毕业设计论文
- ssd4 ex4 ssd4 ex4 人机界面 QT QT版本的作
- Qt做的超炫日历
- Qt5串口通信
- MT2503或FreeRTOS上移植MQTT协议
- 网上的一款QT界面设计的电子地图
- qt+opencv视频图像采集与基于tcp协议的
- qt_assistant中文版
- Qt下 用OpenGL 实现的模拟太阳系
- QTreeWidget,项可拖动、可编辑,创建、
-
Qt读写xm
l文件,QTreeWidget显示xm l和 -
QTreeWidget,读写xm
l功能、可拖动、编 - qT围棋源码
- 反向运动学演示程序含核心代码
- QtOpenGL以及Graphics-View框架整合的演示
- 基于Qt和GLSL的着色器演示程序+源代码
- ActiveMQ_QtExample.rar
- 基于QtcpServer的网络库
- Qt_assistant简体中文版
- Qt4 图形设计与嵌入式开发 高清完整版
- 二维码解析
- Qt商业版完整SDK+license
- opencv+qt+vs的摄像头视频显示和处理G
- QT自定义toolbox
- 《Qt Creator快速入门》第二版 源代码
- Qt超市管理信息系统源码+可执行程序
- qt5超级贪吃蛇(单人双人,简单人机
- 用Qt Vs写的串口程序
评论
共有 条评论