HMI-51-【多媒体】搞地图 1

​ 其实,说道搞地图,我也真不知道咋搞,完全没有搞过。看高德的api,基本都是基于JS,这个我更没有玩过了,所有,后面的内容深度和进度我不负责哈哈。

当前进度

​ 今天基本算是调通了在QWidget下显示qml元素了。如下图所示。目前界面上就是一个Rectangle上放置了一个Text


文章目录

  • HMI-51-【多媒体】搞地图 1
    • 当前进度
    • QWidget下调用QML
      • QML 代码
    • 让Qml控件始终和窗口大小一样
    • 在Qml中加入一个按钮,当返回主菜单按钮
      • Qml里面生成一个按钮
      • 在Widget里面链接槽函数
      • 在主文件中链接槽函数
    • 第三阶段成果展示
    • 第二阶段成果展示
    • 第一阶段成果展示

关键字: HMIMultifunctionQtqmlQQuickWidget

QWidget下调用QML

​ 这个其实不用我们操心了,哈哈,Qt直接给了我们一个控件QQuickWidget。直接放进去,写上qml的路径就可以了。

    ui->quickWidget->setSource(QUrl("qrc:/Navigation/QML/MultifunctionDisplay/MFD_Navigation/QML/main.qml"));

QML 代码

​ QML代码如下:这里要插一句,以前写QML的时候,发布的时候需要带上QML文件,不知道现在会不会存在了

import QtQuick 2.0Rectangle {width: 1920height: 1080color: "#FF0000"Image {id: nameanchors.fill: parentsource: "qrc:/Navigation/Resources/MultifunctionDisplay/Navigation/demo.png"}Rectangle{anchors.centerIn: parentwidth: 800height: 600color: "#123456"Text {id: demoanchors.centerIn: parentcolor: "#FFFFFF"font.bold: truefont.pixelSize: 40text: qsTr("QML 地图测试页面")}}}

让Qml控件始终和窗口大小一样

​ 这个方法就有很多了,比如我这个软件里面,我就没有改变窗口大小的区别,所以可以直接在布局中改变QQuickWidget属性,这样是最好的,我这里使用了重绘方法,代码如下:

void MFD_Navigation::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);ui->quickWidget->setGeometry(this->rect());
}

不过这样会不会影响性能了,暂时还不知道。我已经不使用这个了,用了布局。

在Qml中加入一个按钮,当返回主菜单按钮

​ 这里用到了QmlQWidget交互了,最简单的方式还是信号槽,我用的就是这样。

Qml里面生成一个按钮

​ 下面这段代码就是在Qml里面实现一个按钮,最底层是一个Rectangle,设置布局,大小和颜色,上面是一个Text文本,仅设置了文字信息和布局,最上层是一个MouseArea,鼠标点击区域,填充整个Rectangle区域。并在鼠标点击函数里面发送了一个信号。

    Rectangle{id:menuButtonanchors.top: parent.topanchors.topMargin: 200anchors.right: parent.rightanchors.rightMargin: 50width: 120height: 40color: "#FF0000"Text {anchors.centerIn: parentid: menuButton_Texttext: qsTr("返回主菜单")}MouseArea{anchors.fill: parentonClicked:{root.returnToMenu()}}}

​ 这里还有一个位置需要注意一下,我们需要在Qml的跟下面创建一个信号,如下图所示;

在Widget里面链接槽函数

​ 这里我单独开了一个函数,我感觉后面可能会有好多个信号和槽,这样放在一起好管理,代码如下

void MFD_Navigation::initQML()
{mItem = ui->quickWidget->rootObject();QObject::connect(mItem,SIGNAL(returnToMenu()),this,SLOT(slot_returnToMenu()));}

​ 槽函数就非常简单了,就是再发送一个信号给他的上级。代码如下

void MFD_Navigation::slot_returnToMenu()
{emit signal_returnToMenu();
}

在主文件中链接槽函数

void MultifunctionDisplay::initMenuDisplay()
{QGridLayout* pg=new QGridLayout;pg->setMargin(0);pg->setSpacing(0);m_menuDisplay = new MFD_MenuDisplay(ui->tab_menu);pg->addWidget(m_menuDisplay);ui->tab_menu->setLayout(pg);connect(m_menuDisplay,&MFD_MenuDisplay::signal_menuIndex,this,[=](int index){ui->tabWidget_mainFrame->setCurrentIndex(index);});
}

今天就先到这里,后面需要等美术的UI来了在搞地图。

第三阶段成果展示

​ 目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:

基于Qt的汽车仪表模拟 3.0

B站链接:https://www.bilibili.com/video/BV1WS4y137y1/

第二阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

基于Qt的汽车仪表模拟 2.0

B站链接:https://www.bilibili.com/video/BV1aq4y1t7H7/

第一阶段成果展示

​ 目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:

基于Qt的汽车仪表模拟 1.0)

B站链接:https://www.bilibili.com/video/BV1qJ411X7Gs/


说明:

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

多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。

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

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

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

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


HMI-51-【多媒体】搞地图 1相关推荐

  1. 微信小程序集合4(51报名管家+地图定位和导航+仿ofo共享单车+仿麦当劳点餐+购物节抽奖+婚庆摄影商店)

  2. 【前端搞地图】如何设计一张更真实的 3D 地图

  3. DOTA6.51中文版地图下载

    <script language='javascript' src='http://ad.paqiang.com.cn/Header.js'></script>dota6.51 ...

  4. HMI-64-【多媒体】Ui全部制作完成

    HMI-64-[多媒体]Ui全部制作完成 文章目录 HMI-64-[多媒体]Ui全部制作完成 ☀前言 框架图 函数调用流程 ✍本文计划 ☢当前进度 ☯功能实现 1 菜单 3 空调 4 行车记录仪 5 ...

  5. 百度地图3.0实现图文并茂的覆盖物

    前一段时间搞地图要显示周围房源信息,之前搜索的都是使用2.x的,如今百度地图官方新出了3.0版本号因为之前思维局限一直没有实现图文并茂,今天看了别人2.0的实现方式,把它用到3.0上成功显示,以下看一 ...

  6. java地图瓦片_百度地图瓦片层级范围对照表

    最近搞地图搞的多,因为项目要求需要做个离线地图来添加覆盖物,网上有篇博客教我们怎么下载瓦片的,对应的是java代码,但是每次操作去看console里的层级和范围超级麻烦,而网上有提供软件下载,感觉有点 ...

  7. 一文彻底搞懂前端监控 等推荐

    大家好,我是若川.话不多说,这一次花了几个小时精心为大家挑选了20余篇好文,供大家阅读学习.本文阅读技巧,先粗看标题,感兴趣可以都关注一波,一起共同进步. 前端点线面 前端点线面 百度前端研发工程师, ...

  8. 百度地图瓦片层级范围对照表

    最近搞地图搞的多,因为项目要求需要做个离线地图来添加覆盖物,网上有篇博客教我们怎么下载瓦片的,对应的是java代码,但是每次操作去看console里的层级和范围超级麻烦,而网上有提供软件下载,感觉有点 ...

  9. 终于搞定那个顽固的病毒

    那个一上网就跳到cn.yahoo.com的病毒实在是让我忍无可忍了,就发了几个小时给摆平了,真的是非常的费劲呀,很佩服那个制作病毒的哥们,真是高手中的高手,但是还是有漏洞的,把各个盘下的auto文件全 ...

最新文章

  1. 直线段检测算法(LSD:a Line Segment Detector)
  2. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)
  3. web前端技巧-ES6新特性与重点知识汇总(一)
  4. Ubuntu下创建Vim+Taglist+Cscope+Ctags组合编辑器
  5. 第一阶段:前端开发_Mysql——表与表之间的关系
  6. 什么是创新?如何创新?
  7. 利用多线程提高程序性能(for Android)
  8. redux-form(V7.4.2)笔记(三)之Flow简介
  9. ServerVariables 变量
  10. PASS云计算书简介——接近完美的模式
  11. BUUCTF-[XMAN2018排位赛]ppap
  12. MySQL安装后默认密码的问题
  13. 怪物掉落装备修改属性
  14. tableau和oracle dv,比较Power BI和Tableau,好比用奔驰对比奥迪
  15. select苹果手机样式设置
  16. 接口测试面试题汇总(含答案)
  17. Python爬虫系列之爬取某奢侈品小程序店铺商品数据
  18. phpstorm使用小技巧一
  19. 分式加法JAVA程序_十五:实战2-分式计算器
  20. 把一个运行的Docker容器做成镜像

热门文章

  1. 移动web基础:视口(viewport),流式布局 JDM京东移动端开发
  2. 立创梁山派GD32F450ZGT6--屏幕扩展板LVGL应用
  3. 以txt为数据源的随机点名系统
  4. source insight
  5. 常见字读音(粤语)---(2)
  6. 铁流:兆芯处理器媲美国际主流水准?言过其实
  7. python大数据运维常用脚本_python大数据运维
  8. 【汇正财经】什么是股权结构?
  9. EAP-TTLS预研报告
  10. python图片转文字easyocr_Python OpenCV读取png图像转成jpg图像存储