这里是一个简单的Qt调用谷歌地图的示例代码:
#include <QWebEngineView>
#include <QVBoxLayout>
#include <QDebug>
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QWidget window;
QVBoxLayout* layout = new QVBoxLayout(&window);
// 创建 Web 视图
QWebEngineView* view = new QWebEngineView(&window);
view->setUrl(QUrl("https://www.google.com/maps"));
// 连接页面加载完成信号
QObject::connect(view, &QWebEngineView::loadFinished, [&view]()
{
// 执行一些 JS 代码,例如设置地图中心点和缩放级别
QString js = QString("var latLng = new google.maps.LatLng(40.758896, -73.985130);"
"var mapOptions = { center: latLng, zoom: 13 };"
"new google.maps.Map(document.getElementById('map'), mapOptions);");
view->page()->runJavaScript(js);
});
layout->addWidget(view);
window.show();
return app.exec();
}
需要注意的是,使用此方法需要在 Qt 中启用 Web 引擎模块。 在 .pro
文件中添加以下代码即可:
QT += webengine