Qt Qwdget 汽车仪表知识点拆解6 自定义控件

简介: 先贴上效果图,注意,没有写逻辑,都是乱动的

image.png

这里说一下控件自定义

image.png

图中标出的部分都是自定义的控件

 

这里如果我们有批量类似的功能,就可以使用自定义控件的方式,这里我已下面的自定义控件说一下,上面的在上一篇文章中已经有了代码了

image.png

选着项目,鼠标邮件,添加新文件


image.png

选择C++类,再选择C++ class

完了点击Choose就可以了

image.png

填写自己的类的名称,下面是你要自定义那个控件,一般就把那个控件作为基类,例如QLabel

记得要包好QObject,不然有好多Qt的功能是无法使用的

剩下的就是在类中实现你的功能

这里贴下我的代码,我的功能及时欢每个label的资源文件

.H

 

#ifndef MQLABEL_NUMBER_H
#define MQLABEL_NUMBER_H
#include <QObject>
#include <QLabel>
class MQlabel_Number : public QLabel
{
    Q_OBJECT
public:
    explicit MQlabel_Number(QWidget *parent = 0);
    void set_number(int num = 0);
signals:
public slots:
};
#endif // MQLABEL_NUMBER_H

.CPP

#include "mqlabel_number.h"
MQlabel_Number::MQlabel_Number(QWidget *parent) : QLabel(parent)
{
    this->resize(16,16);
}
void MQlabel_Number::set_number(int num)
{
    switch (num) {
    case 0:
        this->setStyleSheet("border-image:url(:/source/numberl/0.png)");
        break;
    case 1:
        this->setStyleSheet("border-image:url(:/source/numberl/1.png)");
        break;
    case 2:
        this->setStyleSheet("border-image:url(:/source/numberl/2.png)");
        break;
    case 3:
        this->setStyleSheet("border-image:url(:/source/numberl/3.png)");
        break;
    case 4:
        this->setStyleSheet("border-image:url(:/source/numberl/4.png)");
        break;
    case 5:
        this->setStyleSheet("border-image:url(:/source/numberl/5.png)");
        break;
    case 6:
        this->setStyleSheet("border-image:url(:/source/numberl/6.png)");
        break;
    case 7:
        this->setStyleSheet("border-image:url(:/source/numberl/7.png)");
        break;
    case 8:
        this->setStyleSheet("border-image:url(:/source/numberl/8.png)");
        break;
    case 9:
        this->setStyleSheet("border-image:url(:/source/numberl/9.png)");
        break;
    default:
        break;
    }
}

剩下的就是把自己的控件提升为自己的控件可以了

image.png

由于我的控件已经提升,这里显示可能不一样


image.png

这这里填写你提升控件的类名

点击提升就好了

完成

目录
相关文章
|
存储 编译器 程序员
QT源码学习 | 编译器知识点
本文是关于QT源码学习中编译器知识点的总结,包括`__declspec`、`Q_FUNC_INFO`、`__assume`、`__attribute__`、`__ASSEMBLER__`、`QT_SUPPORTS`和`QT_WARNING_DISABLE_MSVC`等宏定义的使用和作用,以及相关参考链接。
388 0
QT源码学习 | 编译器知识点
|
程序员 C++ Windows
Qt多线程分享——你必须知道的进程知识点
Qt多线程分享——你必须知道的进程知识点
Qt [GC9-23]:模拟汽车上电液晶仪表部分
Qt [GC9-23]:模拟汽车上电液晶仪表部分
168 0
Qt [GC9-23]:模拟汽车上电液晶仪表部分
Qt Qwdget 汽车仪表知识点拆解8 淡入效果
先贴上效果图,注意,没有写逻辑,都是乱动的
203 0
Qt Qwdget 汽车仪表知识点拆解8 淡入效果
Qt Qwdget 汽车仪表知识点拆解7 图像绘制,旋转
先贴上效果图,注意,没有写逻辑,都是乱动的
215 0
Qt Qwdget 汽车仪表知识点拆解7 图像绘制,旋转
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
487 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
576 0
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
770 2

推荐镜像

更多
  • qt