Qt Qwdget 汽车仪表知识点拆解1 速度表示
先贴上效果图,注意,没有写逻辑,所以这些都是乱动的
这里线主要说一下中间显示速度的显示制作的方式,在这里,自己专门写了一个数字的仪表
考虑的一般的汽车是没有办法把瞬时速度提升到四位数的,所以我这里就放了三位数,完了根据实时数据,更新这三个label的资源文件,在这个新的类中,只有一个函数,那就是设置数字
void set_number(int num = 0);
下面是实现方法,这个方法应该还可以优化,不过懒得优化了,先把功能堆出来。
void Number_1::set_number(int num)
{
int temp1 = num;
int temp2 = num;
switch (num%10) {
case 0:
ui->label_3->setStyleSheet("border-image:url(:/source/number/0.png)");
break;
case 1:
ui->label_3->setStyleSheet("border-image:url(:/source/number/1.png)");
break;
case 2:
ui->label_3->setStyleSheet("border-image:url(:/source/number/2.png)");
break;
case 3:
ui->label_3->setStyleSheet("border-image:url(:/source/number/3.png)");
break;
case 4:
ui->label_3->setStyleSheet("border-image:url(:/source/number/4.png)");
break;
case 5:
ui->label_3->setStyleSheet("border-image:url(:/source/number/5.png)");
break;
case 6:
ui->label_3->setStyleSheet("border-image:url(:/source/number/6.png)");
break;
case 7:
ui->label_3->setStyleSheet("border-image:url(:/source/number/7.png)");
break;
case 8:
ui->label_3->setStyleSheet("border-image:url(:/source/number/8.png)");
break;
case 9:
ui->label_3->setStyleSheet("border-image:url(:/source/number/9.png)");
break;
default:
break;
}
switch (temp1/10) {
case 0:
ui->label_2->setStyleSheet("border-image:url(:/source/number/0.png)");
break;
case 1:
ui->label_2->setStyleSheet("border-image:url(:/source/number/1.png)");
break;
case 2:
ui->label_2->setStyleSheet("border-image:url(:/source/number/2.png)");
break;
case 3:
ui->label_2->setStyleSheet("border-image:url(:/source/number/3.png)");
break;
case 4:
ui->label_2->setStyleSheet("border-image:url(:/source/number/4.png)");
break;
case 5:
ui->label_2->setStyleSheet("border-image:url(:/source/number/5.png)");
break;
case 6:
ui->label_2->setStyleSheet("border-image:url(:/source/number/6.png)");
break;
case 7:
ui->label_2->setStyleSheet("border-image:url(:/source/number/7.png)");
break;
case 8:
ui->label_2->setStyleSheet("border-image:url(:/source/number/8.png)");
break;
case 9:
ui->label_2->setStyleSheet("border-image:url(:/source/number/9.png)");
break;
default:
break;
}
switch (temp2/100) {
case 0:
ui->label_1->setStyleSheet("border-image:url(:/source/number/0.png)");
break;
case 1:
ui->label_1->setStyleSheet("border-image:url(:/source/number/1.png)");
break;
case 2:
ui->label_1->setStyleSheet("border-image:url(:/source/number/2.png)");
break;
case 3:
ui->label_1->setStyleSheet("border-image:url(:/source/number/3.png)");
break;
case 4:
ui->label_1->setStyleSheet("border-image:url(:/source/number/4.png)");
break;
case 5:
ui->label_1->setStyleSheet("border-image:url(:/source/number/5.png)");
break;
case 6:
ui->label_1->setStyleSheet("border-image:url(:/source/number/6.png)");
break;
case 7:
ui->label_1->setStyleSheet("border-image:url(:/source/number/7.png)");
break;
case 8:
ui->label_1->setStyleSheet("border-image:url(:/source/number/8.png)");
break;
case 9:
ui->label_1->setStyleSheet("border-image:url(:/source/number/9.png)");
break;
default:
break;
}
if(num<10)
{
ui->label_3->move(64,0);
ui->label_2->hide();
ui->label_1->hide(); }
else if(num >=10 && num <100)
{
ui->label_2->show();
ui->label_1->hide();
ui->label_2->move(32,0);
ui->label_3->move(96,0);
}
else
{
ui->label_1->show();
ui->label_2->show();
ui->label_1->move(0,0);
ui->label_2->move(64,0);
ui->label_3->move(128,0);
}
}
在主程序中调用如下
number_center = new Number_1(ui->widget_center);
number_center->setGeometry(0,0,192,72);
number_center->show();
好了,这个速度显示的界面就搞定了
Qt Qwdget 汽车仪表知识点拆解1 速度表示的更多相关文章
- Qt Qwdget 汽车仪表知识点拆解6 自定义控件
先贴上效果图,注意,没有写逻辑,都是乱动的 这里说一下控件自定义 图中标出的部分都是自定义的控件 这里如果我们有批量类似的功能,就可以使用自定义控件的方式,这里我已下面的自定义控件说一下,上面的在上一 ...
- Qt Qwdget 汽车仪表知识点拆解2 图像放大
先贴上效果图,注意,没有写逻辑,都是乱动的 这里讲下 这个小汽车的进入过程,其实这个说白了就没有技术含量了,本来应该趁着这个机会学习一下Qt的动画机制,不过随机一想,这个自己写也累不到那里去 下面说下 ...
- Qt Qwdget 汽车仪表知识点拆解8 淡入效果
先贴上效果图,注意,没有写逻辑,都是乱动的 看下面的开始,开始的时候有一个带入的效果,这里有一个坑, 网上大部分都是调用下面这个函数 setWindowOpacity(); 但是,你会发现,在你的子窗 ...
- Qt Qwdget 汽车仪表知识点拆解7 图像绘制,旋转
先贴上效果图,注意,没有写逻辑,都是乱动的 看下最中心的指针旋转,这里使用的QPainter的绘制函数 要显示复杂的效果,需要分层 void Widget::draw_number_pointer() ...
- Qt Qwdget 汽车仪表知识点拆解5 标题栏图标闪烁
先贴上效果图,注意,没有写逻辑,都是乱动的 看下最上面的部分,有一些仪表图标在闪烁,如果一个一个写,也是可以实现的,不过感觉要累死的节奏 这里我写了一个我自己的Label,完了把把这些QLabel提升 ...
- Qt Qwdget 汽车仪表知识点拆解4 另类进度条实现
先贴上效果图,注意,没有写逻辑,都是乱动的 注意看一下,右面的这两个进度条,有瑕疵,就是我没有把图片处理干净,这里犹豫我不知道这个具体的弧度,也没法绘制,就偷懒了 现在上面放一个UI,把两个进度条抠空 ...
- Qt Qwdget 汽车仪表知识点拆解3 进度条编写
先贴上效果图,注意,没有写逻辑,都是乱动的 这篇我来说说左侧的这个进度条的实现原理,其实更简单,哈哈哈 有一个大的widget,根据素材,我放了10个label 剩下的就是写一个函数,根据数据的不同, ...
- Qt中常用知识点
1:QRegExp 正则表达式 QRegExp regExp("[a-zA-Z][1-9][0-9]{0,2}"); xxx->setValidator(new QRegEx ...
- [转]Qt 5.5 操作 Excel 的速度 效率问题
转自:http://blog.csdn.net/li494816491/article/details/50274305 1. QAxObject *_excelObject1 =newQAxObje ...
随机推荐
- stn,spatial transformer network总结
对整篇paper的一个总结:https://blog.csdn.net/xbinworld/article/details/69049680 github:1.https://github.com/D ...
- 【luogu P3979 遥远的国度】 题解
题目链接:https://www.luogu.org/problemnew/show/P3979 除了换根操作都是裸的树剖 所以换根时考虑: 1.我查询的根等于换的根:无影响 2.我查询的根是换的根的 ...
- linux c做服务端使用多线程接收图片并且将图片写入数据库
#include<sys/socket.h> #include<sys/types.h> #include<sys/stat.h>//包含文件的全部结构,属性 #i ...
- android imageview使用的时候 引用资源src和background的区别
android imageview使用的时候 引用资源时src和background的区别 src更强调内容并且不行拉伸图片进行适配,而background更注重引用图片,会对图片进行拉伸
- 制作npm插件vue-toast-m实例练习
制作npm插件vue-toast-m实例练习(消息弹窗) 一.使用npm插件 import VueToast from 'vue-toast-demo-cc' Vue.use(VueToast) th ...
- ATK-DataPortal 设计框架(二)
在信息的交换过程中,总是有此相同相似的功能,由于业务的各自不同,由同一类型来处理诸如增删改查等常见的信息处理方式.从日常的对些类行为操作为生成的类分析,大量雷同的代码遍布整个项目.框架中xxxHand ...
- iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用
[iOS开发]iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的 ...
- django-基于中间件实现限制ip频繁访问
########django-基于中间件写一个限制频繁登陆######## 额额,标题已经很醒目了,通过中间件去实现,其他方法也可以实现 浏览器前端传来的请求,必须通过中间件,才能到后面路由,视图函数 ...
- 数组reduce方法以及高级技巧
基本概念: reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值. reduce为数组中的每一个元素依次执行回调函数.不包括数组中被删除或从未赋值的元素,接受两 ...
- npm ERR! code ENOENT (未找到文件 error no entry)
问题: ENOENT一般是没找到文件或路径,包括因为权限问题没找到的情况 解决: 我这个是 目录选择错了 其他: