2011-09-13 9 views
2

Googleマップでユーザーが場所を選択できるQtプログラムがあります。私は、マップを作成するための単純なHTMLファイルを使用してQWebViewコントロールでこのファイルをロードしています:Qt QWebViewとJavaScriptからデータを渡す

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html 
     { 
      height: 100%; 
     } 
     body 
     { 
      height: 100%; 
      margin: 0; 
      padding: 0; 
     } 
     #map_canvas 
     { 
      height: 100%; 
     } 
    </style> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 

    <script type="text/javascript"> 
     function initialize() { 
      var latlng = new google.maps.LatLng(-34.397, 150.644); 

      var myOptions = { 
       zoom: 8, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

      google.maps.event.addListener(map, "click", function (event) { 

       var geoLocationUrl = 'http://maps.googleapis.com/maps/api/geocode/xml?latlng=' 
       + event.latLng.lat() + "," + event.latLng.lng() + "&sensor=false"; 

       console.log(geoLocationUrl); 

       $.ajax({ 
        type: "GET", 
        url: geoLocationUrl, 
        dataType: "xml", 
        success: function (xml) { 

        }, 
        error: function() { 

        } 


       }); 
      }); 
     } 

     function showLocation(location) { 

     } 

    </script> 
</head> 
<body onload="initialize()"> 
    <div id="map_canvas" style="width: 100%; height: 100%"> 
    </div> 
</body> 
</html> 

質問はQtのC++コードへのAjaxリクエストの後にデータを渡す方法です。私はQt C++でjavascript関数を評価できることを知っていますが、この場合はタスクが逆です。

答えて

1

QWebFrameには、QWebFrame::addToJavaScriptWindowObject()というメソッドがあります。これを使用して、QtオブジェクトをJSウィンドウオブジェクトに追加できます。そのプロパティとスロットをJS側から使用できます。

+0

は、どのように私はここJavaScriptにC++のメソッドからデータを渡すことができます。私はコールバックを意味します。この質問にお答えできますか? - http://stackoverflow.com/questions/22006667/in-qtwebkit-how-to-install-the-callback-from-c-to-javaobject-window –

関連する問題