IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Récupérer le retour d'une fonction JavaScript dans Python via Pyside2


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut Récupérer le retour d'une fonction JavaScript dans Python via Pyside2
    Bonjour à tous,

    J'espère tout d'abord que le post est au bon endroit mais je fais confiance aux modérateurs qui sauront me le repositionner et je m'en excuse d'avance le cas échéant ...
    J'utilise Python 3.7 et PySide 2. J'utilise un QWebEngineView pour afficher un site internet et je cherche à connaitre la valeur du ScrollMaxi en horizontal. D'après mes recherches la (seule) façon d'y parvenir est d'utiliser JavaScript. Le problème est que je ne sais pas faire... et mes recherches sont, pour l'instant, pas très fructueuses.
    Pourriez vous me donner quelques pistes, codes ou tuto afin que je puisse débloquer la situation.
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    4 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 4 186
    Points : 6 575
    Points
    6 575
    Par défaut
    Salut,

    Je ne sais pas où tu vas trouver ScrollMaxi dans le javascript de la page, mais je te donnes un exemple d'une fonction javascript exécutée à partir du code Python avec récupération du résultat.

    En fait, tout se fait avec QWebPage.mainFrame(). evaluateJavaScript()

    Dans cet exemple, on cherche à récupérer les coordonnées du centre d'une carte (openStreetMap) affichée dans la QWebView.

    javascript
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          function updateLatLonFields() {
            var view = map.getView();
            var center = view.getCenter();
            var lonLat = ol.proj.toLonLat(center);
            var zoom = view.getZoom();
            var values = [lonLat[0], lonLat[1], zoom];
            return (values);
          };

    python
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        def get_coordinate(self):
            # self.page_ == QWebView.page()
            frame = self.page_.mainFrame()
            evl = frame.evaluateJavaScript("updateLatLonFields();")
            if evl is not None:
                coord = [str(evl[1]), str(evl[0]), evl[2]]
                self.set_coordinate(coord)
    Maintenant, si c'est toujours pour ton problème de largeur de splitter je me demande si tu ne ferais pas mieux de regarder du côté des propriétés des scrollbars. La dimension de la glissière est proportionnelle au rapport dimension-totale/dimension-affichée.

  3. #3
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonjour VinsS,
    Merci pour ta réponse, mais ça ne fonctionne pas avec Pyside2 oui c'est toujours ça l'objectif. J'avais trouvé une solution avec PySide mais avec Pyside2 (que je découvre ) c'est complètement différent. J'avais pratiquement le même petit morceau de code que toi pour la géolocalisation mais je n'arrive pas à l'adapter pour l'instant.

  4. #4
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    En fait je pense que j'aurai quelques difficultés à récupérer le retour d'une fonction Javascript vu qu'il y aurait un bug identifié
    https://bugreports.qt.io/browse/PYSIDE-643.
    Je vais donc abandonné cette piste, pour l'instant, et me concentrer sur un moyen de récupérer les données du CSS pour trouver les dimensions du contenu de la page.

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/06/2011, 14h32
  2. Récupérer la variable d'une fonction JavaScript dans PHP
    Par Nix6800 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2009, 15h13
  3. [PHP-JS] récupérer le retour d'une fonction javascript
    Par nadiaflamingenierie dans le forum Langage
    Réponses: 5
    Dernier message: 29/04/2008, 10h15
  4. Réponses: 3
    Dernier message: 28/09/2007, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo