Не работает перезагрузка в webview.start(reload, window)
Я тестирую свой код и в цикле обновляю координаты, чтобы работало как обновление геопозицию в реальном времени. Если обновлять страницу в браузере во время работы этого кода, то маркер изменяет свою позицию каждые 5 секунд как и должно. Могу предположить что window всё же не обновляется. Подскажите что ни так в этом коде пожалуйста
Код:
from tkinter import *
import webview
import folium
from threading import *
import time
import os
# define an instance of tkinter
arr_coord = [[21.528286, 46.016934], [21.527596, 46.021067]]
coords = [0,0]
def create_and_update_map(coords):
# без location zoom_start не работает
map = folium.Map(location=coords, zoom_start=20)
tooltip ="MyMap"
folium.Marker(coords, popup="user 1", tooltip=tooltip, icon=folium.Icon(color='green')).add_to(map)
print("create new maps!")
map.save('C:\\Users\\user\\Desktop\\Сервер\\mymap.html')
def update():
global arr_coord
while(True):
for coord in arr_coord:
print(coord)
create_and_update_map(coord)
time.sleep(5)
def reload(window):
global arr_coord
while True:
for coord in arr_coord:
print(coord)
create_and_update_map(coord)
time.sleep(5)
print("reload url!")
window.load_url('mymap.html')
if __name__ == '__main__':
window = webview.create_window('MyMap', 'mymap.html')
webview.start(reload, window)
Ответы (1 шт):
Сам же отвечу на вопрос. Я так и не нашел как запустить этот код. Есть рабочая альтернатива - PyQt5. Также я заменил цикл for. В коде ниже видно что страница обновляется в отличии от pywebview.
Также pywebview является сырым фреймворком.
P.s админы и те кто успел это прочесть. Отвечать на свои же вопросы, это приятно, но я бы хотел чтобы на мои вопросы хотя бы пытались ответить, что я делаю не так? И это не первый мой вопрос с одним лишь моим ответом
Код:
import folium
import time
import os
import sys
from PyQt5.QtCore import *
from PyQt5.QtWebEngineWidgets import *
from PyQt5.QtWidgets import QApplication
# define an instance of tkinter
arr_coord = [[51.528286, 46.016934], [51.527596, 46.021067]]
coords = [0,0]
idx = 0
def update_coord():
global idx
if(idx == 0):
coord = arr_coord[0]
idx = 1
else:
idx = 0
coord = arr_coord[1]
return coord
def job():
global arr_coord
coord = update_coord()
create_and_update_map(coord)
print('test')
print('Reload :%s',time.time())
browser.reload()
if __name__ == '__main__':
url ='file:///C:/Users/user/Desktop/Сервер/mymap.html'
app = QApplication(sys.argv)
browser = QWebEngineView()
browser.load(QUrl(url))
browser.show()
timer = QTimer(interval=3000)
timer.timeout.connect(job)
timer.start()
sys.exit(app.exec_())