日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Qt 汽车仪表 QWidget

發(fā)布時(shí)間:2024/3/24 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 汽车仪表 QWidget 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天是2016年的最后一個(gè)工作日,在這個(gè)最后工作日里面,和以為網(wǎng)友要了一點(diǎn)練手的素材文件,經(jīng)過(guò)網(wǎng)友確認(rèn),不涉及商業(yè)機(jī)密,在這里分享一下,如侵權(quán),請(qǐng)聯(lián)系我刪除、

?

先上程序運(yùn)行圖

?

?

?

這里顯示數(shù)字,閃爍等都沒(méi)有問(wèn)題,唯一的問(wèn)題就是這個(gè)速度指針的繪制問(wèn)題,在代碼中我使用的是用QPainter繪制image。鋸齒好嚴(yán)重,這里我已經(jīng)開了抗鋸齒

?

painter.setRenderHint(QPainter::Antialiasing,true);

但是效果幾乎沒(méi)有,是操作不對(duì),還是需要特殊設(shè)置了

?

?

剩下的就是分享代碼了

?

首先就是這個(gè)指針的繪制代碼

?

ui->label->setStyleSheet("border-image:url(:/source/beijing.bmp)");ui->label->installEventFilter(this);image_pointer.load(":/source/222.png");

?

?

?

?

?

這里主要就是設(shè)置大背景,就是后面的那么最大的儀表界面,剩下的就是為這個(gè)要在Qlabel上面繪制指針,需要為QLabel注冊(cè)繪制事件,否則程序會(huì)濾掉這個(gè)繪制事件

?

繪制指針代碼

?

void Widget::painter_car() {QPainter painter(ui->label);painter.setRenderHint(QPainter::Antialiasing,true);painter.translate(960,360);painter.save();painter.rotate(pointer_number);QRectF target(-40,-267.0,80.0,336.0);QRectF source(0.0,0.0,80.0,336.0);painter.drawImage(target,image_pointer,source);painter.restore();}

這里新建Qpainter繼承值Qlabel

?

設(shè)置開抗鋸齒,幾乎沒(méi)有效果,我都懷疑執(zhí)行了沒(méi)有

?

移動(dòng)Qpainter 的原始坐標(biāo)點(diǎn)

?

完了就是簡(jiǎn)單的繪制 ,?

?

剩下的就是數(shù)字儀表的顯示

?

這里我新建了一個(gè)專門顯示數(shù)字的界面

這個(gè)幾面來(lái)負(fù)責(zé)顯示七位數(shù)字

?

數(shù)字顯示源代碼:

?

頭文件

?

?

#ifndef NUMBER_H #define NUMBER_H#include <QWidget>namespace Ui { class Number; }class Number : public QWidget {Q_OBJECTpublic:explicit Number(QWidget *parent = 0);~Number();void set_Number(int number);private:void set_image(int flag,int number); private:Ui::Number *ui; };#endif // NUMBER_H

?

?

源文件

?

#include "number.h" #include "ui_number.h" #include <QDebug> Number::Number(QWidget *parent) :QWidget(parent),ui(new Ui::Number) {ui->setupUi(this); }Number::~Number() {delete ui; }void Number::set_Number(int number) {if(number==0){set_image(1,0);}set_image(1,number%10);if(number/10>0){set_image(2,number/10);}if(number/100>0){set_image(3,number/100);}if(number/1000>0){set_image(4,number/1000);}if(number/10000>0){set_image(5,number/10000);}if(number/100000>0){set_image(6,number/100000);}if(number/1000000>0){set_image(7,number/1000000);}}void Number::set_image(int flag, int number) {switch (flag) {case 1:switch (number) {case 0:ui->label->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 2:switch (number) {case 0:ui->label_2->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_2->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_2->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_2->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_2->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_2->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_2->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_2->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_2->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_2->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 3:switch (number) {case 0:ui->label_3->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_3->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_3->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_3->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_3->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_3->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_3->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_3->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_3->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_3->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 4:switch (number) {case 0:ui->label_4->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_4->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_4->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_4->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_4->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_4->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_4->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_4->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_4->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_4->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 5:switch (number) {case 0:ui->label_5->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_5->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_5->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_5->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_5->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_5->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_5->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_5->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_5->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_5->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 6:switch (number) {case 0:ui->label_6->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_6->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_6->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_6->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_6->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_6->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_6->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_6->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_6->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_6->setStyleSheet("border-image:url(:/source/9.png)");break;}break;case 7:switch (number) {case 0:ui->label_7->setStyleSheet("border-image:url(:/source/0.png)");break;case 1:ui->label_7->setStyleSheet("border-image:url(:/source/1.png)");break;case 2:ui->label_7->setStyleSheet("border-image:url(:/source/2.png)");break;case 3:ui->label_7->setStyleSheet("border-image:url(:/source/3.png)");break;case 4:ui->label_7->setStyleSheet("border-image:url(:/source/4.png)");break;case 5:ui->label_7->setStyleSheet("border-image:url(:/source/5.png)");break;case 6:ui->label_7->setStyleSheet("border-image:url(:/source/6.png)");break;case 7:ui->label_7->setStyleSheet("border-image:url(:/source/7.png)");break;case 8:ui->label_7->setStyleSheet("border-image:url(:/source/8.png)");break;case 9:ui->label_7->setStyleSheet("border-image:url(:/source/9.png)");break;}break;} }

?

?

?

?

?

?

?


這里代碼開著有點(diǎn)多,其實(shí)沒(méi)有什么含量,說(shuō)白了就是給七個(gè)QLabel換背景

?

使用情況

?

?

number_1 = new Number(ui->widget_1);number_1->resize(175,32);number_1->move(0,0);number_1->set_Number(temp);number_1->show();number_2 = new Number(ui->widget_2);number_2->resize(175,32);number_2->move(0,0);number_2->set_Number(temp);number_2->show();number_3 = new Number(ui->widget_3);number_3->resize(175,32);number_3->move(0,0);number_3->set_Number(temp);number_3->show();number_4 = new Number(ui->widget_4);number_4->resize(175,32);number_4->move(0,0);number_4->set_Number(temp);number_4->show();number_5 = new Number(ui->widget_5);number_5->resize(175,32);number_5->move(0,0);number_5->set_Number(temp);number_5->show();number_6 = new Number(ui->widget_6);number_6->resize(175,32);number_6->move(0,0);number_6->set_Number(temp);number_6->show();


新建6個(gè)界面實(shí)例,

?

?

?

bool flag_pointer = true; void Widget::timerout_poinyer() {if(flag_pointer){if(pointer_number<135){++pointer_number;if(pointer_number == 135){flag_pointer = false;}}}else{if(pointer_number>-135){--pointer_number;if(pointer_number == -135){flag_pointer = true;}}}++temp;if(temp>999999){temp = 0;}number_1->set_Number(temp);number_2->set_Number(temp);number_3->set_Number(temp);number_4->set_Number(temp);number_5->set_Number(temp);number_6->set_Number(temp);this->update(); }

?


在這里來(lái)刷新指針和刷新數(shù)字界面的顯示

?

?

?

?

大家可能看到圖中有的界面是有那個(gè)沒(méi)有系安全帶的圖標(biāo),有的有,這里是實(shí)現(xiàn)了一個(gè)1Hz的圖標(biāo)閃爍,其實(shí)原理很簡(jiǎn)單,就是QLabel的隱藏,顯示,再隱藏,再顯示。。。

?

實(shí)現(xiàn)代碼:

?

void Widget::timeout_people() {if(ui->label_people->isHidden()){ui->label_people->show();}else{ui->label_people->hide();} }

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的Qt 汽车仪表 QWidget的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产无码久久精品 | 国产精品免费无码 | 日本九九视频 | 极品在线播放 | 秘密爱大尺度做爰呻吟 | 91国模少妇一区二区三区 | 亚洲一二区在线 | 香蕉视频免费在线观看 | 黄色污在线观看 | 国产成人无码久久久精品天美传媒 | 17c一起操| www.超碰97.com | 爱爱动态图 | 中文字幕一区二区三区四区欧美 | 亚欧在线免费观看 | 欧美日韩国语 | 亚洲午夜av久久乱码 | 午夜电影一区 | 最新网址av | 性网站在线观看 | 国产精品一区在线 | 自拍偷拍校园春色 | 91久久精品国产 | 日韩女优一区二区 | www亚洲天堂| 伊人春色视频 | 午夜伊人网 | 日本黄色www | 免费高清视频在线观看 | 男男gay羞辱feet贱奴vk | 69精品视频 | 在线播放波多野结衣 | 综合视频一区 | 日韩一区二区三区免费在线观看 | 亚洲大尺度在线 | 国产91色在线 | 亚洲一区二区精品在线观看 | 91av在线播放| 亚洲免费在线看 | 国产一区导航 | 亚州三级| 亚洲成人天堂 | 免费观看一级视频 | 三级福利视频 | 久久综合网址 | 国产性爱精品视频 | h欧美| 国产一区二区小视频 | aaaaav| 日本免费一二三区 | 综合色88| 香蕉伊人| 91成人黄色| 亚洲无遮挡 | 日本三级吹潮 | 亚洲老妇色熟女老太 | 97爱爱视频 | 亚洲欧美日韩图片 | 久久国产精品国产精品 | 密臀久久 | 激情四月 | 性欧美激情 | 99热国产精品 | 2018天天弄 | 日韩欧美国产高清 | 91精品国| 国产不卡视频在线观看 | 黄色片网站免费看 | 亚洲毛片儿 | 日韩视频中文字幕在线观看 | 91久久精品一区二区三区 | 人妻少妇一区二区 | 99精品国产一区二区 | 一本久久a精品一合区久久久 | 欧美多人猛交狂配 | 91爱爱爱| 小泽玛丽亚在线观看 | 中文文字幕一区二区三三 | 国内精品视频 | 人人人超碰 | 日本一二三不卡视频 | 亚洲精品免费在线 | 黄色wwwww| 激情五月av | 欧美日韩在线高清 | 一区二区三区四区国产精品 | 又黄又爽一区二区三区 | 精品一区二区三区中文字幕 | 成人欧美一区二区三区在线播放 | 国产免费www | 福利一区二区视频 | 亚洲国产精品二区 | 性高跟鞋xxxxhd人妖 | 91伊人| 男人和女人日批视频 | 超碰97在线资源 | 亚洲红桃视频 | 日韩免费一级 | 日本特黄网站 |