banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 22 February 2023 10:12

Carl56
Juste Inscrit !
Date d'inscription: 5 Mar 2020
Messages: 3

QGIS et l'intelligence artificielle - Conseils

Bonjour mesdames, messieurs,

Je poste un message puisque j'aurais besoin d'aide pour écrire une extension sur QGIS. Maîtrisant bien le logiciel au niveau opérationnel, mais ayant un niveau très basique sur Python, j'ai décidé d'utiliser ChatGPT pour m'écrire un script python.

En fait, je souhaiterai pouvoir ouvrir n'importe quelle page web dans une fenêtre QGIS, dans le but de travailler spatialement et d'avoir en même temps une fenêtre (sur le même écran). Lorsque j'ai formulé ma demande sur Chat GPT, voici ce qu'il m'a sorti :

from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView
from qgis.gui import QgsBrowserDockWidget

# Define the URL of the web page you want to open
url = QUrl("https://www.google.com")

# Create a QWebEngineView widget to display the web page
web_view = QWebEngineView()
web_view.setUrl(url)

# Create a QgsBrowserDockWidget to host the web view
browser_widget = QgsBrowserDockWidget("Web Page")
browser_widget.setWidget(web_view)

# Add the browser widget to the QGIS interface
iface.addDockWidget(Qt.RightDockWidgetArea, browser_widget)


En faisant un second test, voici ce qu'il m'a également sorti :

from qgis.PyQt.QtGui import QIcon
from qgis.PyQt.QtWidgets import QAction, QToolBar
from qgis.utils import iface, pluginMetadata

class MyPlugin:
    def __init__(self, iface):
        self.iface = iface
        self.toolbar = None

    def initGui(self):
        # create a toolbar button
        self.action = QAction(QIcon(pluginMetadata['icon']), 'Open Web Page', self.iface.mainWindow())
        self.action.triggered.connect(self.open_web_page)

        # add the button to the toolbar
        self.toolbar = QToolBar("My Plugin")
        self.toolbar.addAction(self.action)
        self.iface.addToolBarIcon(QIcon(pluginMetadata['icon']), self.toolbar)

    def unload(self):
        # remove the button from the toolbar
        self.iface.removeToolBarIcon(self.action)
        del self.action

    def open_web_page(self):
        # Define the URL of the web page you want to open
        url = "https://www.google.com"

        # Create a QgsBrowserDockWidget to host the web page
        browser_widget = QgsBrowserDockWidget("Web Page")
        browser_widget.loadUrl(url)

        # Add the browser widget to the QGIS interface
        self.iface.addDockWidget(Qt.RightDockWidgetArea, browser_widget)


Bon bien sûr, ça ne marche pas x) Mais du coup, j'aurai voulu vous demander si vous auriez une idée de pourquoi ça ne fonctionne pas et notamment de comment ça pourrait fonctionner...

Je vous remercie par avance de vos futures réponses,

Cordialement et bonne journée.

Hors ligne

 

Pied de page des forums

Powered by FluxBB