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

目录
相关文章
|
2月前
|
缓存 Java
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
31 0
|
1月前
|
算法 Java API
Android性能优化面试题经典之ANR的分析和优化
Android ANR发生于应用无法在限定时间内响应用户输入或完成操作。主要条件包括:输入超时(5秒)、广播超时(前台10秒/后台60秒)、服务超时及ContentProvider超时。常见原因有网络、数据库、文件操作、计算任务、UI渲染、锁等待、ContentProvider和BroadcastReceiver的不当使用。分析ANR可借助logcat和traces.txt。主线程执行生命周期回调、Service、BroadcastReceiver等,避免主线程耗时操作
37 3
|
3月前
|
存储 算法 容器
算法刷题小技巧【持续补充~】
算法刷题小技巧【持续补充~】
19 2
|
3月前
|
Java
|
存储 算法 Java
24-一步一图带你理清G1垃圾回收流程
G1的垃圾回收流程主要是从新生代回收开始,新生代回收与并发标记再到混合回收,接下来我们就先来说第一个新生代回收。
374 0
初始项目——快速入手之感
自从两个月之前加入市委组织部考核项目,小编的经历、成长、感受、经验,愿与读者共享。
|
Java
结合代码和内存变化图一步步弄懂JVM的FullGC
一步步结合代码去验证jvm的内存变化,并画出内存变化的示意图,从而探索出jvm fullGC的原因。
373 0
|
存储 Java
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
JVM内存结构配图详解【前后三小时整理,值得收藏】 ✨ 每日积累
|
SQL 缓存 监控
你们要的线上GC问题案例来啦
最近写了几篇关于GC的文章,主要是因为线上有一些关于GC的问题,所以想顺便总结一波,梳理一下GC的一些知识点和排查思路。
318 0
|
IDE Java 开发工具
先学会这些调试技巧,再写代码,效率提高十倍。吐血整理!
作为程序大家都知道,写代码和调试的时间是差不多9:1,也就是说90% 的时间大家都在调试代码,怎么样才能最快的发现bug?
160 0
先学会这些调试技巧,再写代码,效率提高十倍。吐血整理!