Qt [GC9-24]:阶段性思路整理及调整

简介: Qt [GC9-24]:阶段性思路整理及调整

image.png

这几天也不知道咋地了,自从一口气把老板安排的测试说明写完以后,就和泄了气的皮球一样,一点都提不起劲,回头看这几天自己写的东西,一坨坨呀,各种命名都不统一,就这么几个函数,自己都分不清干啥了,简直没法看了呀,还是得好好理理头绪才是可以,不然到后面,那就是灾难。


目前整理如下,每个模块对应的初始化名称为init_XXX(ini initType);这样在以后就差不多都是这个函数就是用来初始化这个模块的。比如,在我的控制台启动后会初始化HUD、液晶仪表和多媒体。如下图所示。

image.png

其实这三个函数是有参数的,其函数声明如下

    void init_HUD(bool isShow = true);
    void init_MeterDisplay(bool isShow = true);
    void init_MultifuncitonDisplay(bool isShow = true);

这三个函数的作用就是把HUD、液晶仪表和多媒体New出来,参数来控制显示不显示。当初想法是默认是不显示,至于为什么要先New了,为的是以后数据解析赋值使用。

这三个函数的的流程都是一样,如下

image.png

大致就是判断这个模块是否已经存在,如果存在了就判断是否显示,如果不存在就新建一个,再次判断是否显示。代码如下

/*
 * 初始化HUD
 * 目前就只是显示和关闭
 */
void ControlPanel::init_HUD(bool isShow)
{
    if(myHUD)
    {
        if(isShow)
        {
            myHUD->show();
        }
        else
        {
            myHUD->hide();
        }
    }
    else
    {
        myHUD = new HUD;
        myHUD->setGeometry(760,0,400,300);
        if(isShow)
        {
            myHUD->show();
        }
        else
        {
            myHUD->hide();
        }
    }
}
/*
 * 初始化液晶仪表显示控件
 * 目前只写显示关闭
 */
void ControlPanel::init_MeterDisplay(bool isShow)
{
    if(myMeterDisplay)
    {
        if(isShow)
        {
            myMeterDisplay->show();
        }
        else
        {
            myMeterDisplay->hide();
        }
    }
    else
    {
        myMeterDisplay = new MeterDisplay;
        myMeterDisplay->setGeometry(0,300,1920,720);
        if(isShow)
        {
            myMeterDisplay->show();
        }
        else
        {
            myMeterDisplay->hide();
        }
    }
}
/**
 * @brief ControlPanel::init_MultifuncitonDisplay
 * @param isShow
 * 建立多媒体模块
 */
void ControlPanel::init_MultifuncitonDisplay(bool isShow)
{
    if(myMultifunctionDisplay)
    {
        if(isShow)
        {
            myMultifunctionDisplay->show();
        }
        else
        {
            myMultifunctionDisplay->hide();
        }
    }
    else
    {
        myMultifunctionDisplay = new MultifunctionDisplay;
        myMultifunctionDisplay->setGeometry(0,0,800,600);
        if(isShow)
        {
            myMultifunctionDisplay->show();
        }
        else
        {
            myMultifunctionDisplay->hide();
        }
    }
}

在完成对着三个模块的初始化后,会调用一个叫做“init_MyCar”的函数,这个函数的作用就是调用上面三个模块对应的init函数,代码如下

/**
 * @brief ControlPanel::initMyCar
 * @param initType
 * @return
 * 模拟完成车辆上电、自检和启动过程
 */
void ControlPanel::init_MyCar(int initType)
{
    if(myHUD)
    {
        myHUD->init_HUD(initType);
    }
    if(myMeterDisplay)
    {
        myMeterDisplay->init_MeterDisplay(initType);
    }
    if(myMultifunctionDisplay)
    {
        myMultifunctionDisplay->init_MultifuncionDisplay(initType);
    }
}

大致调用流程如下图

image.png

目录
相关文章
|
8月前
|
缓存 Java
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
69 0
|
存储 算法 Java
24-一步一图带你理清G1垃圾回收流程
G1的垃圾回收流程主要是从新生代回收开始,新生代回收与并发标记再到混合回收,接下来我们就先来说第一个新生代回收。
601 0
|
9月前
|
Java
|
算法 Java 大数据
JVM 整体架构及内存调优(二)| 学习笔记
快速学习 JVM 整体架构及内存调优。
JVM 整体架构及内存调优(二)| 学习笔记
|
消息中间件 Oracle 算法
JVM 整体架构及内存调优(一)| 学习笔记
快速学习 JVM 整体架构及内存调优。
JVM 整体架构及内存调优(一)| 学习笔记
|
Java
结合代码和内存变化图一步步弄懂JVM的FullGC
一步步结合代码去验证jvm的内存变化,并画出内存变化的示意图,从而探索出jvm fullGC的原因。
423 0
|
Java
「作者推荐!」JVM研究系列「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!
「作者推荐!」JVM研究系列「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!
122 0
「作者推荐!」JVM研究系列「难点-核心-遗漏」TLAB内存分配+锁的碰撞(技术串烧)!
|
Arthas 监控 Java
JVM 整体架构及内存调优(三)| 学习笔记
快速学习 JVM 整体架构及内存调优。
JVM 整体架构及内存调优(三)| 学习笔记
|
存储 Java
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
|
存储 算法 Java
JVM垃圾清理机制详解 ✨ 每日积累
JVM垃圾清理机制详解 ✨ 每日积累
JVM垃圾清理机制详解 ✨ 每日积累