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

代码片段和文件信息
#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培训教程
- 下一篇:萤石云摄像头直播带云台控制代码
相关资源
- 酒店管理系统基于Qt Creator5)
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
评论
共有 条评论