#1 Wed 29 January 2014 16:12
- mich
- Participant occasionnel
- Lieu: Grenoble
- Date d'inscription: 1 Aug 2007
- Messages: 35
QGIS 2.0.1 : Formulaire(QT) Spatialite et Qgis
Bonjour,
Via qgis j'ai un formulaire .ui créée via QT et un script python qui permet de lier le champs PRINC au champs Secondaire (liste imbriquée) et qui va enregistrer les données dans une base Spatialite.
Tout marchais bien sur la version 1.8. Sur la version 2 il m'affiche bien les données dans la table temporaire (juste avant enregistrement des donnes) et quand je veux enregistrer, tous mes attributs disparaissent de ma table attributaire?
Voici le code Python utilisé?
Avez vous des idées
D'avance merci
Code:
from PyQt4.QtCore import * from PyQt4.QtGui import * import sys nameField = None myDialog = None comp = None princ = None listItems = None def connecterCombos(dialog,layerid,featureid): #initialise listItems global listItems listItems = [] global myDialog myDialog = dialog buttonBox = dialog.findChild(QDialogButtonBox,"buttonBox") #connecter la ComboBox TYPE PRINC global princ princ = dialog.findChild(QComboBox,"TYPE_PRINC") #connecter la ComboBox TYPE COMP global comp comp = dialog.findChild(QComboBox,"TYPE_COMP") # Changer les possibilitees le menu deroulant TYPE COMP quand on change le TYPE PRINC QObject.connect(princ, SIGNAL("currentIndexChanged(int)"), changeTypeComp) # Deconnexion du signal dialog buttonBox.accepted.disconnect(myDialog.accept) buttonBox.accepted.connect(validate) buttonBox.rejected.connect(myDialog.reject) def calc_listItems(): # TYPE_COMP possibles en fonction de TYPE_PRINC global listItems if princ.currentText() == 'arrivee d\x27eau': listItems = ["source","resurgence"] if princ.currentText() == 'partage des eaux': listItems = [] if princ.currentText() == 'perte karstique': listItems = ["ponor", "doline"] if princ.currentText() == 'puits de captage': listItems = ["agricole", "AEP","individuel"] if princ.currentText() == 'seuil': listItems = ["bouchon de terre","cailloux","planches","silosacs","bonde de fond","beton","vanne"] if princ.currentText() == 'station': listItems = ["assainissement","G_Envt","pompage","refoulement"] listItems.insert(0,"") def changeTypeComp(): #calculer les types complementaires possibles global listItems calc_listItems() # Charger les possibilitees dans le menu deroulant TYPE COMP comp.clear() comp.addItems(listItems) def validate(): # Verifier que le champ type principal est bien renseigne p = ["arrivee d\x27eau","partage des eaux","perte karstique","puits de captage","seuil","station"] if not (princ.currentText() in p) : #message erreur msgBox = QMessageBox() msgBox.setText("Type principal non valide.") msgBox.exec_() else: global listItems calc_listItems() if not (comp.currentText() in listItems) : msgBox = QMessageBox() msgBox.setText("Type complementaire non valide.") msgBox.exec_() else : # accepter myDialog.accept()
Hors ligne