HMI-34-【运动模式】实现运动模式的UI上电逻辑控制

简介: 今天这界面上没有实际的增加,仅仅是实把运动模式UI上电控制逻辑实现了一下,其实到这个模块的时候,就会发现之前在写舒适模式的时候的一些问题了,有好内容可以抽象出来了,不用每次都实现一遍了。不过现在还比较懒,还是先以实现为主,和面的内容放在优化里面。废话不多说,开始搞事情。不过为了吸你们开下去,现在把目前进度放在了。

HMI-34-【运动模式】实现运动模式的UI上电逻辑控制

​ 今天这界面上没有实际的增加,仅仅是实把运动模式UI上电控制逻辑实现了一下,其实到这个模块的时候,就会发现之前在写舒适模式的时候的一些问题了,有好内容可以抽象出来了,不用每次都实现一遍了。不过现在还比较懒,还是先以实现为主,和面的内容放在优化里面。废话不多说,开始搞事情。不过为了吸你们开下去,现在把目前进度放在了。

目前进度

​ 本期进度展示中有问题,能发现问题的小伙伴有奖。


[TOC]

关键字: HMIQTimer动画uiQt

搞一个自己定时器,不用QTimer

​ 至于为什么不用QTimer,之前的博客中有写,使用Qt时间久的人也知道为啥不用哈。这里就不展开说了,仅仅是简单的搞一个线程,开定时发个数就可以满足目前功能。代码如下:

/**
 * @brief The MoveFrom_Sport class
 * 这个类的作用就是用来代替QTimer,至于为什么,多用用就QTimer就知道为什么了
 */
class MoveFrom_Sport : public QThread
{
    Q_OBJECT
public:
    /**
     * @brief run
     * 线程RUN函数,所有的线程操作都应该放在这里
     */
    virtual void run();
public:
    bool flagRun = true;
signals:
    /**
     * @brief signalNumberChanged
     * @param number
     * 线程触发信号,其实就是定时器功能
     */
    void signalNumberChanged(int number);
private:
    int m_number = 0;
};
void MoveFrom_Sport::run()
{
    while (flagRun)
    {
        emit signalNumberChanged(m_number);
        m_number++;
        if(m_number>100)
        {
            flagRun = false;
            m_number = 0;
        }
        msleep(5);
    }
}

实现动画

​ 有了定时器了,那实现动画就很简单了,只是这个简单不简单,算错一点就废了,因为整个UI基本是按照像素来的,并不是自适应,所以对控件坐标及大小就要算明白了,直接看代码吧

void MD_Sport::slotShaoAll(int number)
{
    m_title->setGeometry(212,0.89*number-66,1456,66);
    if(m_title->y() >0)
    {
        m_title->show();
    }
    m_bottom->setGeometry(0,790-1.4*number,1920,70);
    if(m_bottom->y()<720)
    {
        m_bottom->show();
    }

    m_left->setGeometry(-491 +5.89*number,121,491,492);
    if(m_left->x()>-491)
    {
        m_left->show();
    }

    m_center->setGeometry((615+ (675/2.0 - 675.0/200.0*number)),(20+ (674/2 - 674/200.0*number)),6.75*number,6.74*number);
    if(m_center->width()>10)
    {
        m_center->show();
        if(m_center->width() == 675)
        {


            m_center->powerUpFinished();
        }
    }

    m_right->setGeometry(2380 - 10.34*number,137,460,516);
    if(m_right->x()< 1920)
    {
        m_right->show();
    }


    if(number == 100)
    {
        emit signalPowerUpfinished();
        m_lightControl->show();
    }
}

​ 这里中心仪表没有出现的位置了,只能由小变大,但是有部分指针虽然我设置栅格布局,但是在中心仪表中有mini仪表是通过代码生成,生成的时候并没有给布局,也没有在中心仪表中留位置,这里就多高两个函数,到了一定阶段看,在显示mini仪表。

void MDS_Center::powerUp()
{
    centerDisplay->hide();
    ui->label_pointer->hide();
    ui->label_drawOil->hide();
    ui->label_drawWater->hide();

}

void MDS_Center::powerUpFinished()
{
    centerDisplay->show();
    ui->label_pointer->show();
    ui->label_drawOil->show();
    ui->label_drawWater->show();
}

​ ok了,今天就到这里了,下面将实现运动模式下的自检功能。期待吧n_n


说明:

本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计吉利汽车HMI项目

设计图的所有权和解释权都归吉利汽车所有。

本项目所有资源文件均有打不死的小海复刻制作。

本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。

本项目仅限学习交流、禁止商业使用。


博客签名2021

相关文章
|
7月前
|
自然语言处理 测试技术 API
关于 SAP Commerce Cloud UI 的混合部署模式
关于 SAP Commerce Cloud UI 的混合部署模式
39 0
|
7月前
SAP UI5 sap.m.Table 实现响应式布局的两种配置模式
SAP UI5 sap.m.Table 实现响应式布局的两种配置模式
47 0
|
8月前
|
存储 API
SAP 电商云 Spartacus UI 的交货模式 Delivery Mode 设计
SAP 电商云 Spartacus UI 的交货模式 Delivery Mode 设计
35 0
|
8月前
|
Web App开发 开发者
为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
32 0
|
8月前
SAP 电商云 Spartacus UI 客户端模式下从服务器端渲染模式接收到的状态转移
SAP 电商云 Spartacus UI 客户端模式下从服务器端渲染模式接收到的状态转移
31 0
|
8月前
|
Web App开发 开发者
SAP 电商云 Spartacus UI 客户端模式下产品主数据的 HTTP 请求设计
SAP 电商云 Spartacus UI 客户端模式下产品主数据的 HTTP 请求设计
50 0
|
8月前
|
资源调度
SAP Spartacus UI 服务器端渲染的调试启动方式 - debug 模式
SAP Spartacus UI 服务器端渲染的调试启动方式 - debug 模式
58 0
|
Web App开发 测试技术
Chrome-headless 模式,没有UI界面的自动化UI测试
Chrome-headless 模式,没有UI界面的自动化UI测试
Chrome-headless 模式,没有UI界面的自动化UI测试
|
XML 前端开发 定位技术
Android MVVM框架使用(十三)UI更新 (App启动白屏优化、适配Android10.0深色模式)
Android MVVM框架使用(十三)UI更新 (App启动白屏优化、适配Android10.0深色模式)
354 0
Android MVVM框架使用(十三)UI更新 (App启动白屏优化、适配Android10.0深色模式)
|
Web App开发 开发者
为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求
95 0
为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求

热门文章

最新文章