话不多说,直接效果,这一贯是自己的风格,再多的话语,不如直接干货。

上图为最终效果:继承QLabel 类,进行重绘,适配各种分辨率。本实例只是抛砖引玉,烦请大神让行。

#ifndef PICTURELABELWIDGET_H
#define PICTURELABELWIDGET_H#include <QWidget>
#include <QPainter>
#include <QDebug>
#include <QLabel>//图标 显示class PictureLabelWidget : public QLabel
{Q_OBJECT
public:explicit PictureLabelWidget(QWidget *parent = nullptr);signals:public slots:public:void picture_label_init(QString color,QString name,QString contex,QString ico);//color:主背景色 name:显示的标题 contex:设置内容  ico:图标路径void label_contex(QString contex);//显示内容设置
private:QString  nameText; //题目QString  contexText; //内容QString  backLightColor; //背景颜色QString  icoPath; //显示图标路径
protected:virtual void paintEvent(QPaintEvent *event);};#endif // PICTURELABELWIDGET_H
#include "picturelabelwidget.h"PictureLabelWidget::PictureLabelWidget(QWidget *parent) : QLabel(parent)
{this->setAttribute(Qt::WA_DeleteOnClose,true); //析构后完成内存的释放
}void PictureLabelWidget::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);QPen pen;//pen.setColor(QColor(92,114,137));pen.setWidth(1);pen.setStyle(Qt::NoPen);painter.setPen(pen); //设置画笔形式painter.setBrush(QBrush(QColor(backLightColor),Qt::SolidPattern)); //设置画刷形式painter.drawRect(0,0,this->width(),this->height());pen.setStyle(Qt::SolidLine);pen.setColor(QColor(0, 0, 0));QFont font;font.setPointSize(12);font.setBold(false);//粗体painter.setFont(font);painter.setPen(pen);painter.drawText(this->width()*0.05,0,this->width(),this->height(),Qt::AlignVCenter |Qt::AlignLeft,nameText);font.setBold(true);//粗体font.setPointSize(14);painter.setFont(font);painter.setPen(pen);painter.drawText(this->width()*0.5,0,this->width(),this->height(),Qt::AlignVCenter |Qt::AlignLeft,contexText);QPixmap pix;pix.load(icoPath);//qDebugInfo() <<this->height()<<pix.height() <<hScale;pix = pix.scaled(this->size()*0.8,Qt::KeepAspectRatio, Qt::SmoothTransformation);painter.drawPixmap(this->width()-pix.width()-this->width()*0.05,this->height()*0.15,pix.width(),pix.height(),pix);}
void PictureLabelWidget::label_contex(QString contex)
{contexText = contex;this->update();
}
void PictureLabelWidget::picture_label_init(QString color,QString name,QString contex,QString ico)
{backLightColor = color;nameText = name;contexText = contex;icoPath = ico;this->update();
}

父类应用如下:

自定义QLabel 控件相关推荐

  1. Qt工作笔记-自定义开关控件

    1.自定义开关控件: 2.点击有动画效果: 3.在动画效果中,不再响应信号: 运行截图如下: 输出响应信号: 源码如下: myonoff.h #ifndef MYONOFF_H #define MYO ...

  2. Qt 实现 QQ 9.0版 自定义菜单控件

    #简述 重新最近开始了QQ最新版 9.0 界面的模仿,前几天搞了一个QQ登陆界面的动画效果详情见 QQ 9.0 新版登录窗口登录特效 ,今晚Qt技术学习班分享了QQ 9.0版本的自定义菜单控件,通过Q ...

  3. QT 自定义分页控件

    Qt 自定义页码控件 一.效果展示 二.头文件 #ifndef PAGECONTROL_H #define PAGECONTROL_H #include <QList> #include ...

  4. Android 手机卫士--自定义组合控件构件布局结构

    由于设置中心条目中的布局都很类似,所以可以考虑使用自定义组合控件来简化实现 本文地址:http://www.cnblogs.com/wuyudong/p/5909043.html,转载请注明源地址. ...

  5. Android View体系(十)自定义组合控件

    相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...

  6. iOS自定义View 控件自动计算size能力

    iOS自定义View 控件自动计算size能力 背景 在使用 UILabel 和 UIImage 的时候,不用指定宽高约束,控件也不会报约束缺失,还可以根据内容自己确定适合的宽高,特别适合 Xib 和 ...

  7. VS2010 自定义用户控件未出现在工具箱的解决方案

    VS2010 自定义用户控件未出现在工具箱的解决方案 参考文章: (1)VS2010 自定义用户控件未出现在工具箱的解决方案 (2)https://www.cnblogs.com/lyout/arch ...

  8. [置顶] 分步实现具有分页功能的自定义DataList控件【附源代码】

    一.控件也是类 [效果] [操作步骤] 1.  新建网站Web 2.  添加类CustomDataList.cs(系统会提示你把类建在App_Code文件夹中),代码如下: using System; ...

  9. [转] 使用模板自定义 WPF 控件

      [转] 使用模板自定义 WPF 控件                                                                                 ...

  10. 自定义组合控件:下拉选择框

    Spinner 自定义组合控件之下拉选择框 项目概述 下拉选择框主要是通过在EditText 下用PopupWindow 动态显示ListView 控件来实现的.下拉选择框可以方便用户的输入效率,以此 ...

最新文章

  1. common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析
  2. [TimLinux] JavaScript 元素动态显示
  3. idea添加scala环境_idea怎么在线安装scala并且启动'
  4. DDL 操作表 创建表
  5. go一个简单的爬虫(豆瓣)
  6. 你们身边成功的生意人有哪些特质
  7. C/C++文件字符串处理
  8. 13.Serving Frontend Files
  9. GTASA圣安地列斯 DirectX 2.0 ENB 下窗口化运行的解决办法
  10. 使用Qt开发中国象棋(七):网络对战
  11. echarts柱状图的宽度
  12. ShFileOperation函数详解
  13. easyexcle 设置列宽_在excel中,如何让excel的列宽自动调整
  14. 石河子市谷歌高清卫星地图下载
  15. Android Studio安装教程(保姆级超级详细)
  16. 双系统开机 进入grub resource,并且进不bios
  17. 设计原则与模式009 中介者模式
  18. 重复博弈reapted games
  19. 电脑桌面壁纸更换后不一会就变成黑屏
  20. Windows10 64位 + caffe + Matlab -- cpu版本

热门文章

  1. Visual Studio Qt vs tools 下载教程及加速教程
  2. erdas几何校正_erdas图像几何校正操作步骤指南.doc
  3. 数字图像处理·SLIC超像素分割算法C++实现
  4. APP安全——反编译分析(反编译、再编译、签名)
  5. 软件测试--面试时怎么介绍前公司的项目经验
  6. 电子计算机的核心部件是哪三个,电子计算机三大核心部件 是什么
  7. 论文解读:MOEA/D-TPN
  8. Theano与其他深度学习框架的比较
  9. lcx.exe内网转发命令教程 + LCX免杀下载
  10. 计算机中求声音传输时间公式,混响时间常用的几种计算公式