Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

282
Vistas
¿Cómo puedo agregar HTML personalizado a pyqtlet?

Mi problema real es mucho más específico, pero creo que una respuesta más general me ayudará a hacer frente a las necesidades futuras.

De hecho, necesito habilitar el complemento leaflet-extras de folletos para el leaflet subyacente pyqtlet .

La documentación dice:

Descargue leaflet-providers.js e inclúyalo en su página después de incluir Leaflet, por ejemplo:

 <head> ... <script src="http://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script> <script src="js/leaflet-providers.js"></script> </head>

y entonces:

 // add Stamen Watercolor to map. L.tileLayer.provider('Stamen.Watercolor').addTo(map);

Por supuesto, todo esto se basa en el supuesto de que está escribiendo una aplicación de JavaScript mientras estoy en el entorno pyqtlet .

Traté de hacer frente de una manera muy fea:

  • descargué leaflet leaflet-providers.js a mi venv/lib/python3.8/site-packages/pyqtlet/web/modules
  • agregué la línea <script src="modules/leaflet-providers.js"></script> a mi venv/lib/python3.8/site-packages/pyqtlet/web/map.html
  • usó self.map.runJavaScript("L.tileLayer.provider('Stamen.Watercolor'). addTo(map)") para activar el tileLayer deseado

Esto realmente funciona , pero estoy seguro de que hay una forma más limpia de lograr lo mismo.

Cualquier pista bienvenida.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una solución trivial es leer el .js y ejecutarlo:

 with open("/path/of/leaflet-providers.js") as f: self.map.runJavaScript(f.read()) self.map.runJavaScript("L.tileLayer.provider('Stamen.Watercolor'). addTo(map)")

Otra opción similar es usar document.createElement:

 with open("/path/of/leaflet-providers.js") as f: code = f.read() SCRIPT = """ const script = document.createElement('script'); script.type = 'text/javascript'; document.head.appendChild(script); script.text = `%s`; """ % ( code, ) self.map.runJavaScript(SCRIPT) self.map.runJavaScript( "L.tileLayer.provider('Stamen.Watercolor'). addTo(map)" )

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda