HMI-11-[Qt 布局]:底部信息的实现

简介: 基于Qt的汽车仪表模拟

image.png

点此链接查看视频

程序体验地址:https://pan.baidu.com/s/1rQFZx5JIud8lWdjMHl0tpg

目前版本还没有成功把字体打包的程序中,为了更好的效果体验,请先安装文件中的两个字体

效果图如下

image.png

目前显示内容极少,实现简单

对外接口

/**
     * @brief setGear
     * @param gear
     * 设置档位
     */
    void setGear(gearState gear);
    /**
     * @brief setLim
     * @param lim
     * 设置限速信息
     */
    void setLim(int lim = 0);
    /**
     * @brief setMileage
     * @param mileage
     * 设置总里程数
     */
    void setMileage(int mileage = 0);

这里档位信息放在了单独一个控件里面了,为的是后面还有可能用到。

BottomDisplay::BottomDisplay(QWidget *parent) : QWidget(parent),ui(new Ui::BottomDisplay)
{
    ui->setupUi(this);
    m_gear = new Gear(this);
    m_gear->setGeometry(409,8,82,82);
    setLim();
    setMileage();
}
BottomDisplay::~BottomDisplay()
{
    delete ui;
}
void BottomDisplay::setGear(gearState gear)
{
    if(m_gear)
    {
        m_gear->setGear(gear);
    }
}
void BottomDisplay::setLim(int lim)
{
    ui->label_lim->setText(QString::number(lim,10)+" km");
}
void BottomDisplay::setMileage(int mileage)
{
    ui->label_odo->setText(QString::number(mileage,10)+" km");
}

完成接口的功能

剩下需要看下档位信息的实现部分

表示档位信息的,用了一个枚举日下

 

enum gearState{
    m_gearP,
    m_gearR,
    m_gearN,
    m_gearD1,
    m_gearD2,
    m_gearD3,
    m_gearD4,
    m_gearD5,
    m_gearD6,
    m_gearD7,
    m_gearD8,
    m_gearM1,
    m_gearM2,
    m_gearM3,
    m_gearM4,
    m_gearM5,
    m_gearM6,
    m_gearM7,
    m_gearM8
};

档位信息对外的接口

/**
     * @brief setGear
     * @param gear
     * 设置档位
     */
    void setGear(gearState gear = m_gearP);

实现部分,毫无技术含量

 

void Gear::setGear(gearState gear)
{
    switch (gear) {
    case m_gearP:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/P.png);}");
        break;
    case m_gearR:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/R.png);}");
        break;
    case m_gearN:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/N.png);}");
        break;
    case m_gearD1:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D1.png);}");
        break;
    case m_gearD2:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D2.png);}");
        break;
    case m_gearD3:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D3.png);}");
        break;
    case m_gearD4:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D4.png);}");
        break;
    case m_gearD5:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D5.png);}");
        break;
    case m_gearD6:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D6.png);}");
        break;
    case m_gearD7:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D7.png);}");
        break;
    case m_gearD8:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/D8.png);}");
        break;
    case m_gearM1:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M1.png);}");
        break;
    case m_gearM2:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M2.png);}");
        break;
    case m_gearM3:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M3.png);}");
        break;
    case m_gearM4:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M4.png);}");
        break;
    case m_gearM5:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M5.png);}");
        break;
    case m_gearM6:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M6.png);}");
        break;
    case m_gearM7:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M7.png);}");
        break;
    case m_gearM8:
        ui->label_gear->setStyleSheet("QLabel{border-image:url(:/Comfort/Resources/MeterDisplay/Comfort/Gears/M8.png);}");
        break;
    default:
        break;
    }
}


目录
相关文章
|
2月前
|
监控 前端开发 JavaScript
Qt Quick调试之道:跟踪、输出与打印信息的全面攻略
Qt Quick调试之道:跟踪、输出与打印信息的全面攻略
71 0
|
4月前
Qt 布局管理之 堆栈窗体
Qt 布局管理之 堆栈窗体
27 5
|
4月前
Qt 布局管理之 停靠窗口QDockWidget
Qt 布局管理之 停靠窗口QDockWidget
74 0
|
4月前
Qt 布局管理之分割窗口
Qt 布局管理之分割窗口
36 0
|
6月前
|
编译器
Qt获取当前所用的Qt版本、编译器、位数等信息
Qt获取当前所用的Qt版本、编译器、位数等信息
|
6月前
20 QT - 布局管理器概述
20 QT - 布局管理器概述
28 0
|
1月前
qt开发使用camera类获取摄像头信息并拍照保存
qt开发使用camera类获取摄像头信息并拍照保存
|
2月前
|
编解码 开发者 UED
Qt布局实战:实现高效、美观的GUI应用程序
Qt布局实战:实现高效、美观的GUI应用程序
130 2
|
2月前
使用代码实现QT自定义布局
使用代码实现QT自定义布局
|
3月前
|
容器
QT基础入门——界面布局和常用控件(四)
QT基础入门——界面布局和常用控件(四)
38 0
QT基础入门——界面布局和常用控件(四)

推荐镜像

更多