网站首页 > 教程文章 正文
首先准备环境。安装vs2015 好,再装上Qt5.9.4开发环境。不知道装的同学可以百度(一大堆),在这里我们就不浪费时间讲了。
第一步:建基于Qt5.9.4 带GUI界面工程。
工程如下:
第二步:添加本程所需要的Qt库
第三步:准备QWebEngineView 需要加载的 html 文件。
(1)在这里,需要做的最重要的一件事,就是注册百度地图开的API key(注:这个key比较重要,不要透露给别人) ,注册是免费的。只是有些专业功能是需要收费的,我们基本是用不到的。
(2)还要准备实现qt 与js数据交互的桥梁文件 qwebchannel.js 。这个文件在Qt安装目录就可以找到。
(3)在html 页面中编写初始化百度地图
第四步:Qt工程下编写调用html文件相关代码
1,创建通道对象类(qt与web通信是通过对象的方式交换数据)
创建类TinteractObj:
class TInteractObj : public QObject
{
Q_OBJECT
public:
TInteractObj(QObject *parent);
~TInteractObj();
//页面端调用QT公共接口,必须有Q_INVOKABLE
//页面端调用QT变量,用Q_PROPERTY,用法与QML相同
Q_INVOKABLE void JSSendMessage(QString strParameter,QString str);
Q_PROPERTY(QString username READ username WRITE setusername NOTIFY sig_nameChanged)
Q_PROPERTY(QString password READ password WRITE setpassword NOTIFY sig_passwdChanged)
QString m_username;
QString m_password;
QString username(){
return m_username;
}
QString password(){
return m_password;
}
void setusername(QString str){
m_username = str;
}
void setpassword(QString str){
m_password = str;
}
signals:
void sig_nameChanged();
void sig_passwdChanged();
void SigReceivedMessFromJS(QString strParameter,QString str); //Receive message from Web
void SigSendMessageToJS(QString strParameter); //Send message to Web
};
#endif
tinteractobj.cpp
#include "tinteractobj.h"
TInteractObj::TInteractObj(QObject *parent)
:QObject(parent)
{
}
TInteractObj::~TInteractObj()
{
}
void TInteractObj::JSSendMessage(QString strParameter,QString str)
{
emit SigReceivedMessFromJS(strParameter,str);
}
2,调用html工程代码
头文件
cpp文件
运行效果
工程看起来很简单,在实际工作中可能会遇到各种问题或者自己来重新弄一遍这个工跑第一也会出现很多问题。
注意:1多理解 下面的js函数与qt 中的对应的函数
2,当程序编译好,准备发布时需要带下如下的动态库,红框是特别需要注意的地方,少了他们程序可以运行,但页面显示不出来(在自己电脑可以显示,安装到别人电脑就不显示了)。其他的dll库,如果少了,程序会明显的报出来少哪些。这几个就不行了。
当然这只是打通Qt 与JS 交互的基本功能。大家可以根据自己需要扩充。需要demo的留言,以后会陆续讲qt 实现离线地图,qgis编写地图。
- 上一篇: 开源|一个基于QT设计串口调试工具
- 下一篇: 一个基于QT设计串口调试工具 qt 串口
猜你喜欢
- 2024-12-17 Qt使用教程:创建Qt Quick UI表单(三)
- 2024-12-17 一小例子,了解 TCP 通讯流程 | Qt 示例
- 2024-12-17 如何使用QT编写自己的串口调试助手软件
- 2024-12-17 Qt pro文件中的常用宏说明 qt pro宏定义
- 2024-12-17 Qt Creator 源码学习笔记01,初识QTC
- 2024-12-17 QT学习:statusBar的使用,创建控件添加到statusBar上面
- 2024-12-17 一口气,了解 Qt 的所有 IPC 方式 | Qt 速学
- 2024-12-17 Qt线程QThread开启和安全退出 qt线程怎么安全关闭
- 2024-12-17 Qt之使用socket实现远程控制 qt使用mqtt
- 2024-12-17 C/C++编程笔记:编写完成了一个C/C++程序,如何做一个界面出来?
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)