#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
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