파이썬을 사용하여 Google지도와 상호 작용하려고합니다. QWebView로 PyQT에 응용 프로그램을 만들었습니다.PyQT에서 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: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
var map;
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
}
function addMarker(lat, lng) {
var myLatLng = new google.maps.LatLng(lat, lng);
var beachMarker = new google.maps.Marker({position: myLatLng,
map: map
});
}
</script>
</head>
<body onload="initialize();">
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>
어떻게 파이썬에서 addMarker
를 호출 할 수 있습니다 : 다음과 같이
browser = QwebView()
browser.load(QUrl("file:///c:/main.html"))
frame = browser.page().currentFrame()
frame.evaluateJavaScript(QString("addMarker(-33.89, 151.275)"))
HTML 페이지는 다음과 같습니다 여기에 같이 QWebView 로컬 HTML 페이지를로드?
HTML에서 addMarker를 호출 해 보았습니다. (onload
호출에 대한 호출을 추가했습니다.) 파이썬 (frame.evaluateJavaScript("alert(5)")
)에서 간단한 자바 스크립트 표현식을 사용해 보았습니다. 둘 다 작동하므로, 나는 과 evaluateJavaScript
이 작동한다는 것을 알기 때문에, 어떻게해야할지 모릅니다.
또한 frame.documentElement()
개체에서 evaluateJavaScript("addMarker(-33.89,151.275)")
을 호출하려고 시도했지만 작동하지 않았습니다.
오류는 페이지가로드 될 때까지 기다릴 필요가 있다는 것입니다. 나는'evaluateJavaScript ("addMarker (-33.89,151.275)")'호출에 연결된 버튼을 추가했다. 페이지가로드 된 후 버튼을 클릭하면 마커가 예상대로 추가되었습니다. – Dan
질문에 대한 답변으로 추가하고 동의해야합니다. –