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é ?

#1 Tue 24 November 2015 11:16

Clémence El M-M
Participant occasionnel
Date d'inscription: 2 Feb 2015
Messages: 12

QGIS : Création d'un bouton parcourir dans Qt Designer

Bonjour,
Devant améliorer mon formulaire de pluggin (créé avec plugin builder), je voudrais savoir comment créer un bouton qui permet (lorsque l'on clique dessus), d'ouvrir un sélecteur de fichier (un "parcourir" qui permette de partir de la base et arriver au fichier voulu). J'ai mon bouton mais je ne sais pas comment faire la suite (contenu d'un open () peut-être avec l'éditeur de slot) ? Merci beaucoup

Dernière modification par Clémence El M-M (Tue 24 November 2015 11:18)

Hors ligne

 

#2 Tue 24 November 2015 13:21

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS : Création d'un bouton parcourir dans Qt Designer

Bonjour,

C'est possible avec la classe QFileDialog de QtGui et la méthode getOpenFileName() à lancer sur un signal "clicked".

http://doc.qt.io/qt-4.8/qfiledialog.htm … enFileName

Hors ligne

 

#3 Tue 24 November 2015 13:52

Clémence El M-M
Participant occasionnel
Date d'inscription: 2 Feb 2015
Messages: 12

Re: QGIS : Création d'un bouton parcourir dans Qt Designer

Merci. Et dans le détail des manips, tu mets la méthode getOpen dans une fonction (définie dans la classe) qui sera appelée avec un self.dlg.connect ? Où dois-je ajouter du code... au final ? Pour l'instant j'ai mis une def de méthode et un self.dlg.connect(ma méthode) dans mon py principal. C'est bon ou incomplet (parce que rien ne se lance à mon clic) ?
Merci beaucoup

Dernière modification par Clémence El M-M (Tue 24 November 2015 13:52)

Hors ligne

 

#4 Tue 24 November 2015 14:51

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS : Création d'un bouton parcourir dans Qt Designer

Oui c'est ça. Pour préciser un peu par un exemple, moi je m'étais fait des fonctions pour afficher les dialogues standards:

Code:

def setOpenFileName(self, filtre):
    fileName = QtGui.QFileDialog.getOpenFileName(self, "Sélectionner le fichier", QtCore.QDir.rootPath(), filtre)
    return QtCore.QDir.toNativeSeparators(fileName)

def setExistingDirectory(self):
    directory = QtGui.QFileDialog.getExistingDirectory(self, "Sélectionner un répertoire", QtCore.QDir.rootPath(), QtGui.QFileDialog.ShowDirsOnly)
    return QtCore.QDir.toNativeSeparators(directory)

def setSaveFileName(self):
    saveFileName = QtGui.QFileDialog.getSaveFileName(self, "Enregister le fichier", QtCore.QDir.rootPath())
    return QtCore.QDir.toNativeSeparators(saveFileName)

Dans le __init__ de ma  classe Qt, je connecte mon bouton à une fonction (ici c'était pour avoir l'extent d'un shp)

Code:

#Syntaxe pour Python 2.x
self.connect(self.ui.btLoadShp, QtCore.SIGNAL("clicked()"), self.uiDoReadShpExtent)

#Syntaxe Python 3.x
self.btLoadShp.clicked.connect(self.uiDoReadShpExtent)

Enfin je défini la fonction appelée par le signal

Code:

def uiDoReadShpExtent(self):
    path=str(self.setOpenFileName('Shapefile (*.shp)'))
    ....

Hors ligne

 

#5 Tue 24 November 2015 15:15

Clémence El M-M
Participant occasionnel
Date d'inscription: 2 Feb 2015
Messages: 12

Re: QGIS : Création d'un bouton parcourir dans Qt Designer

Merci beaucoup !
Je croyais ne pas avoir besoin du QtCore.SIGNAL mais il semble que si.
Je vais pouvoir tenter un nouvel essai grâce à toi, merci encore !

Hors ligne

 

#6 Tue 24 November 2015 17:20

Clémence El M-M
Participant occasionnel
Date d'inscription: 2 Feb 2015
Messages: 12

Re: QGIS : Création d'un bouton parcourir dans Qt Designer

tongue Ha ha ha (rire jaune après grosse prise de tête). En fait, mon code était tout bon et au bon endroit mais... Je n'avais pas importé le QFileDialog...
Donc ça marche et en tous les cas merci beaucoup.

Hors ligne

 

Pied de page des forums

Powered by FluxBB