Qt Qwdget 汽车仪表知识点拆解1 速度表示
生活随笔
收集整理的這篇文章主要介紹了
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 速度表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1221条电脑蓝屏代码大全
- 下一篇: win11系统安装oracle11g时遇