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

PyQt Python Discussion :

Webview et mousePressEvent [QtWebKit]


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut Webview et mousePressEvent
    Bonjour à tous,
    J'ai un petit pb. Je souhaiterais récupérer une variable de javascript contenu dans mon fichier HTML mais l'évènement mousePressEvent ne réactualise pas la page alors que j'ai cliqué sur un objet graphique. J'obtiens la valeur de ma variable au second clic.
    Merci bcp pour votre aide,

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    from sys import exit
    from PyQt4.QtGui import QApplication
    from PyQt4.QtWebKit import QWebView, QWebElement
    from PyQt4.QtCore import QUrl, QObject
    import time
     
    class WebView(QWebView):
     
        def mousePressEvent(self, event):        
            print(self.frame.evaluateJavaScript('''test2();'''))
     
    app = QApplication([])
    webview = WebView()
    #webview.loadFinished.connect(webview.test)
     
    frame = webview.page().mainFrame()
    url2 = QUrl()
    url2.setUrl('pixelMap3.html')
    webview.load(url2)
    webview.show() 
    exit(app.exec_())

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    C'est parce que ta méthode a mangé l'event.

    Il faut le réinjecter, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        def mousePressEvent(self, event):
            QWebview.mousePressEvent(self, event)     
            print(self.frame.evaluateJavaScript('''test2();'''))
    Ici, un exemple de ce que tu veux faire:
    http://bazaar.launchpad.net/~vincent...n/mapviewer.py

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut
    Merci Vincent mais cela ne fonctionne pas car je suis sous PyQT4 je pense.

    Voici mon code en entier:

    CODE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    from sys import *
    from PyQt4.QtGui import *
    from PyQt4.QtWebKit import *
    from PyQt4.QtCore import *
    import time
     
     
     
    class WebView(QWebView):
     
        def mousePressEvent(self, event):
            QWebView.mousePressEvent(self, event)
            firstTextInput=self.page().mainFrame().findFirstElement("#info")
            print(frame.evaluateJavaScript('''test2();'''))
            print(firstTextInput.toPlainText())
     
    app = QApplication([])
    webview = WebView()
    #webview.loadFinished.connect(webview.test)
     
     
    frame = webview.page().mainFrame()
    #webview.connect(webview, SIGNAL('loadFinished(bool)'), toto)
     
    url2 = QUrl()
    url2.setUrl('pixelMap3.html')
    webview.load(url2)
    webview.show() 
    exit(app.exec_())

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Ah oui, sorry.

    Ici la version Python2 Qt4:
    http://bazaar.launchpad.net/~vincent...n/mapviewer.py

    Donc si l'on change la carte avec la souris le "evaluateJavaScript" retourne l'info après changement (et non avant, comme dans ton cas) parce que j'utilise plutôt "mouseReleaseEvent".

  5. #5
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Par défaut
    Merci bcp!!!
    Cela fonctionne mais je ne comprends pas encore le principe ))

    Je suis encore tout nouveau ds python mais quelle puissance!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un webviewer en java ?
    Par Bircher dans le forum AWT/Swing
    Réponses: 21
    Dernier message: 16/07/2008, 18h56
  2. [2.2.1][WebViewer] Cache de données non nettoyé
    Par MaxenceD dans le forum BIRT
    Réponses: 3
    Dernier message: 26/12/2007, 10h06
  3. Format des date avec webviewer
    Par zambizi dans le forum BIRT
    Réponses: 2
    Dernier message: 30/06/2007, 17h01
  4. Réponses: 2
    Dernier message: 16/06/2007, 15h33
  5. WebViewer et Graphiques
    Par MaxenceD dans le forum BIRT
    Réponses: 2
    Dernier message: 12/06/2006, 16h56

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