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 :

Google Maps dans un widget


Sujet :

PyQt Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 197
    Par défaut Google Maps dans un widget
    Bonjour,

    je re-poste mon problème, j'ai posté y a 30 minutes et ca n'apparaissait pas..

    Je la refais en bref:
    Je souhaite dans un module pour nos commerciaux avoir un widget qui visualise l'adresse du client pour donner un côté "qui en jette"
    Je veux donc avoir un widget 'Google maps' (avec QWebView?)
    En collant l'adresse de mon navigateur dans l'url du QWebView, j'obtiens rien..

    On parle d'api google maps et javascript

    https://developers.google.com/maps/?hl=FR

    Mais j'ai pas trop le temps/energie pour m'investir à comprendre..

    Je suis tombé sur cette discussion du foruml qui a peut être un lien
    http://www.developpez.net/forums/d97...ser-py-resolu/

    Avez vous déja mis en place la fonctionnalité google maps dans un widget?

    merci

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai développé un navigateur web avec QWebView que j'utilise dans mes programmes pour .. afficher leurs manuels que j'écris en html avec Kompozer.

    Mais il marche aussi pour afficher n'importe quelle page du web, y compris youtube ou google maps: son utilisation est identique à celle d'un navigateur normal.

    Donc, oui, c'est possible.

    J'ai mis mon code sur mon site, mais encore sans le texte du tuto à venir: http://python.jpvweb.com/mesrecettes...navigateur_web. Tu peux déjà le lire, le faire tourner afin de faire l'extrait qui te convient. Regarde en particulier comment on active javascript et autres plugins, ainsi que le "https".

    N'hésite pas à faire la moindre remarque qui peut me faire améliorer ce code.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 197
    Par défaut
    Merci tyrtamos!

    J'ai fait un petit script minimal dans lequel j'ai activé les fonctionnalités javascript comme dans ton tuto
    :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    # -*- coding: utf-8 -*-
    from PyQt4 import QtGui, QtCore, QtSql, QtWebKit
     
    class WClient(QtGui.QWidget):
      def __init__(self, parent=None):
        super(WClient,self).__init__(parent)
        self.setLayout(QtGui.QGridLayout())
     
        self.gBox = QtGui.QGroupBox()
        self.gBox.setLayout(QtGui.QGridLayout())
     
        self.labNom1 = QtGui.QLabel(u"Nom1 :")
        self.labNom2 = QtGui.QLabel(u"Nom2 :")
        self.labAdresse = QtGui.QLabel(u"Adresse :")
        self.labCP = QtGui.QLabel(u"Code Postal :")
        self.labVille = QtGui.QLabel(u"Localité :")
     
        self.linNom1 = QtGui.QLineEdit()
        self.linNom2 = QtGui.QLineEdit()
        self.linAdresse = QtGui.QLineEdit()
        self.linCP = QtGui.QLineEdit()
        self.linCP.setFixedWidth(50)
        self.linVille = QtGui.QLineEdit()
        #self.linNom1.setReadOnly(True)
        #self.linNom2.setReadOnly(True)
        #self.linAdresse.setReadOnly(True)
        #self.linCP.setReadOnly(True)
        #self.linVille.setReadOnly(True)
     
        self.gBox.layout().addWidget(self.labNom1,0,0,1,1)
        self.gBox.layout().addWidget(self.linNom1,0,1,1,3)
        self.gBox.layout().addWidget(self.labNom2,1,0,1,1)
        self.gBox.layout().addWidget(self.linNom2,1,1,1,3)
        self.gBox.layout().addWidget(self.labAdresse,2,0,1,1)
        self.gBox.layout().addWidget(self.linAdresse,2,1,1,3)   
        self.gBox.layout().addWidget(self.labCP,3,0,1,1)
        self.gBox.layout().addWidget(self.linCP,3,1,1,1)   
        self.gBox.layout().addWidget(self.labVille,3,2,1,1)
        self.gBox.layout().addWidget(self.linVille,3,3,1,1) 
        self.gBox.layout().setRowStretch(4,2)
        self.gBox.layout().setSpacing(15)
     
        self.butUrl = QtGui.QPushButton(u"Go!")
        self.webView =  QtWebKit.QWebView()
        # configure viewhtml (interdire 'JavaEnabled' => plante le programme!))
        reglage = self.webView.settings()
        # activer javascript
        reglage.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled, True)
        reglage.setAttribute(QtWebKit.QWebSettings.JavascriptCanOpenWindows, True)
        reglage.setAttribute(QtWebKit.QWebSettings.JavascriptCanAccessClipboard, True)
     
        # activer les plugins
        reglage.setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
     
        # fait que les couleurs et motifs de fond de page ne seront pas imprimés
        reglage.setAttribute(QtWebKit.QWebSettings.PrintElementBackgrounds, False)
     
        self.layout().addWidget(self.gBox)
        self.layout().addWidget(self.butUrl)
        self.layout().addWidget(self.webView)
     
        html= '<div style="width:425px;height:350px"><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&source=s_q&hl=fr&geocode=&q=Tournai&ie=UTF8&z=12&t=m&iwloc=near&output=embed"></iframe><br><table width="425" cellpadding="0" cellspacing="0" border="0"><tr><td align="left"><small><a href="http://maps.google.com/maps?f=q&source=s_q&hl=fr&geocode=&q=Tournai&ie=UTF8&z=12&t=m&iwloc=near">Agrandir le plan</a></small></td><td align="right"><small><a href="http://www.embedgooglemap.com">embed google map</a></small></td></tr></table></div>'
        self.webView.setHtml(html)
     
     
     
    if __name__=='__main__':
      import sys
      app=QtGui.QApplication(sys.argv)
     
      fen = WClient()
      fen.show()
      sys.exit(app.exec_())
    J'ai pris le code généré par http://www.embedgooglemap.com/ et le glisse dans le webview mais ca marche pas.
    Je voudrais simplement un encart où la carte (uniquement!) l'adresse du client s'affiche et non la page complète de google maps..
    J'ai essayé ceci mais rien ne s'affiche..
    Dans la société ici, on a quelques soucis avec les fonctionnalités google et le firewall.. les pages s'affichent une fois sur deux. Je verrais avec le gestionnaire réseau.

    Peux tu me confirmer que rien n'apparait?

    merci

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Je viens d'essayer ton code sans aucune modif, en l'exécutant une bonne vingtaine de fois de plusieurs façons différentes (dans eclipse, avec windows explorer, à partir de la console) : la carte vient dans tous les cas!

    Pour trouver où ça coince chez toi, essaie de jalonner le déroulement du code avec des print ou avec un debuger.

    [edit] je confirme que le code de Jiyuu fonctionne: en remplaçant index.html par http://maps.google.com/maps: on a la carte!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 197
    Par défaut
    zut alors

    les fonctionalités google (maps, gmail,..) fonctionnent au ralenti sur notre réseau.. ca peut peut être provenir de là
    je vais voir l'admin réseau..

    merci pour vos tests

    [ Jiyuu, tu peux effacer le compte 'alan_turing' si tu veux, je vois pas d'option de suppression de compte, c'est comme facebook auparavant )

Discussions similaires

  1. intégration Google map dans access
    Par pkrvz dans le forum Contribuez
    Réponses: 12
    Dernier message: 23/12/2009, 22h44
  2. Récupérer carte de google maps dans Feuil2
    Par damlarumeur dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/02/2009, 14h50
  3. Décalage div (Google Maps) dans un div
    Par paradise dans le forum Mise en page CSS
    Réponses: 15
    Dernier message: 14/01/2009, 14h54
  4. Comment obtenir Google Maps dans une Form ?
    Par thibouille dans le forum Web & réseau
    Réponses: 16
    Dernier message: 13/01/2009, 14h30
  5. Integrer google maps dans une application
    Par La Truffe dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 01/11/2006, 16h45

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