我有一个使用谷歌地图的qwebview的qt应用程序,初始化谷歌地图时没有问题;但是当我尝试添加这样的标记时:
ui-> webView-> page() - > mainFrame() - > evaluateJavaScript(QString(“addmarker(-34.659639,-58.468231);”));
我得到QVariant(无效)。
我的javascript代码如下:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map;
var marker;
var myLatlng = new google.maps.LatLng(-34, -58);
function initialize() {
var myOptions = {
zoom: 14,
center: new google.maps.LatLng(-34, -58),
mapTypeId: google.maps.MapTypeId.HYBRID,
zoomControl: true,
zoomControlOptions: { style: google.maps.ZoomControlStyle.SMALL },
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
}
// Add a marker to the map and push to the array.
function addmarker(location) {
var Latlng = new google.maps.LatLng(location);
marker = new google.maps.Marker({
position: Latlng,
map: map,
title: "marker"
});
}
请任何人帮忙吗? 提前致谢, 此致
答案 0 :(得分:2)
这可能与这篇文章有关:evaluateJavaScript in PyQt - function is not called
页面完成后,QT中会发出一个信号 加载,称为loadFinished()。
请查看webview.loadFinished信号是否可以修复它。