Qt [GC9-15]:HUD-导航及告警部分

简介: Qt [GC9-15]:HUD-导航及告警部分

image.png

image.png

这里可以直接看下HUD导航的接口,我这里弄了两个就,是因为导航的距离只有在距离为100的时候才会出现,所以导航有两个接口,一个是设置方向,一个是设置距离,代码同[GC9-14]相似,宏定义+接口

 

//导航方向
#define NAVIGATIONDIRECTION_OFF 0
#define NAVIGATIONDIRECTION_STRAIGHT 1 //直行
#define NAVIGATIONDIRECTION_TURNLEFT 2 //左转
#define NAVIGATIONDIRECTION_TURNRIGHT 3 //右转
#define NAVIGATIONDIRECTION_FRONTLEFT 4 //左前方
#define NAVIGATIONDIRECTION_FRONTRIGHTT 5 //右前方
#define NAVIGATIONDIRECTION_LEFTREAR 6 //左后方
#define NAVIGATIONDIRECTION_RIGHTREAR 7 //右后方
#define NAVIGATIONDIRECTION_TURNROUND 8 //掉头
//导航距离
#define NAVIGATIONDISTANCE_1 0    //0距离
#define NAVIGATIONDISTANCE_2 1    //1距离
#define NAVIGATIONDISTANCE_3 2    //2距离
void HUD::set_NavigationDirection(int direction)
{
    switch (direction) {
    case NAVIGATIONDIRECTION_OFF:
        ui->label_point->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_down->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        ui->label_up->hide();
        break;
    case NAVIGATIONDIRECTION_STRAIGHT:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->show();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_TURNLEFT:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->show();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_TURNRIGHT:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->show();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_FRONTLEFT:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->show();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_FRONTRIGHTT:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->show();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_LEFTREAR:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->show();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_RIGHTREAR:
        ui->label_point->show();
        ui->label_down->show();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->show();
        ui->label_rightUp->hide();
        ui->label_turnRound->hide();
        break;
    case NAVIGATIONDIRECTION_TURNROUND:
        ui->label_point->hide();
        ui->label_down->hide();
        ui->label_up->hide();
        ui->label_dial_1->hide();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        ui->label_line->hide();
        ui->label_left->hide();
        ui->label_leftDown->hide();
        ui->label_leftUp->hide();
        ui->label_right->hide();
        ui->label_rightDown->hide();
        ui->label_rightUp->hide();
        ui->label_turnRound->show();
        break;
    default:
        break;
    }
}

image.png

void HUD::set_NavigationDistance(int distance)
{
    ui->label_line->hide();
    switch (distance) {
    case NAVIGATIONDISTANCE_1:
        ui->label_dial_1->show();
        ui->label_dial_2->hide();
        ui->label_dial_3->hide();
        break;
    case NAVIGATIONDISTANCE_2:
        ui->label_dial_1->show();
        ui->label_dial_2->show();
        ui->label_dial_3->hide();
        break;
    case NAVIGATIONDISTANCE_3:
        ui->label_dial_1->show();
        ui->label_dial_2->show();
        ui->label_dial_3->show();
        break;
    default:
        break;
    }
}

image.png

#define WARNINGTYPE_GASOLINE 1 //油量警告
#define WARNINGTYPE_ESP 2 //电子稳定系统,电子限滑
void HUD::set_Warning(int warningType,bool isOn)
{
    switch (warningType) {
    case WARNINGTYPE_GASOLINE:
        if(isOn)
        {
            ui->label_gasoline->show();
        }
        else
        {
            ui->label_gasoline->hide();
        }
        break;
    case WARNINGTYPE_ESP:
        if(isOn)
        {
            ui->label_esp->show();
        }
        else
        {
            ui->label_esp->hide();
        }
        break;
    default:
        break;
    }
}

以上就是HUD的内容了,目前HUD所有的界面显示接口已经完成,HUD所有接口如下所以,在后面与控制台交互中,计划将增加一个HUD的数据接口,专门用来与控制台交互。

/*
     * 设置汽车速度,单位为千米每小时
     */
    void set_Current_Speed(int temp);
    /*
     * 设置转向灯
     */
    void set_TurnLight(int signalType,bool isOn);
    /*
     * 设置车道偏离
     */
    void set_LaneDeparture(int position, bool isOn);
    /*
     * 设置智适应巡航模式
     */
    void set_AdaptiveCruiseControl(int controlModel);
    /*
     * 设置车距
     */
    void set_CarDistance(int level);
    /*
     * 设置警告
     */
    void set_Warning(int warningType, bool isOn);
    /*
     * 设置导航方向
     */
    void set_NavigationDirection(int direction);
    /*
     * 设置导航距离
     */
    void set_NavigationDistance(int distance);

image.png

目录
相关文章
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
哎呀,堕落了,快有小两周没哟更新了,是在是没有动力了,浏览量连三位数都没有,是在是没有写下去的信心。
150 0
Qt-网易云音乐界面实现-8 主导航的实现-QtabWidget
Qt-QML-给我的导航条写一个动画-State-Transition
上篇中,我已经写出一个导航条的,虽然太丑了,不过功能是有了,这次我将要给我的导航条加一个动画,先看下演示效果
178 0
Qt-QML-给我的导航条写一个动画-State-Transition
Qt-QML-Repeater-导航条
上篇文章中,我写了一个自己的Button,也就是美化了一下QML自带的Button
303 0
Qt-QML-Repeater-导航条
|
开发工具 C语言
Qt编写自定义控件40-导航进度条
一、前言 导航进度条控件,其实就是支付宝、京东、淘宝订单页面的进度控件,提示当前第几步,总共有几步,然后当前进度特殊颜色显示,每个进度带有时间文字等信息,本控件特意将三种样式风格都集成进去了,京东订单流程样式/淘宝订单流程样式/支付宝订单流程样式,可以动态切换样式,控件自适应任何分辨率,可以自由调整自身大小以适应分辨率的改变,总步骤以及当前步骤都是自动计算占用区域比例,直接提供接口设置步骤对应的文字信息等,接口非常友好。
1333 0
|
开发工具 C语言
Qt编写自定义控件39-导航标签
一、前言 在很多菜单导航界面中,当单击了二级菜单或者三级菜单以后,顶部会显示带箭头或者其他标识的导航标签,可以单击该标签快速切换到对应的界面,也作为指示当前处于哪一级菜单下的界面,主要在WEB中大肆流行,在CS架构的项目中也逐渐应用开来,发现现在越来越多的CS开发的程序,都学习和模仿并应用BS架构的程序中好的方面,尤其是UI方面,取长补短,挺好,专业UI设计师的美感比绝大多数程序员的美感要好很多,他们设计出来的效果都是非常棒的,我个人喜欢去UI中国参看学习各种各样的UI设计,看到好的会下载下来,直接搞个拾色器查看颜色,看下人家的颜色配色搭配的多好。
959 0
|
开发工具 C语言
Qt编写自定义控件9-导航按钮控件
一、前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2属性,配合QPainter这个无敌大法工具,没有什么不能绘制的。
1275 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前

推荐镜像

更多