Suite

Formulaire personnalisé et calcul de champ QGIS

Formulaire personnalisé et calcul de champ QGIS


Je me demande s'il est possible d'utiliser un formulaire personnalisé pour que le calcul du champ soit effectué au moyen d'un bouton de calcul.

J'ai 4 champs de saisie, j'entre dans deux champs manuellement un nombre, après avoir appuyé sur le bouton le reste des champs est calculé.

Exemple:

Pulse : 100-> Par moyenne utilisateur :-> calcul de Pulse/3 Pas : 234-> Par quantité utilisateur :-> calcul de Moyenne * Pas

Est-ce possible de faire avec QT un tel formulaire ?


J'ai utilisé QtDesigner pour générer unQDialogcomme ça:

et désactivé moyenne et quantitéQLineEdits(Veuillez noter que je n'ai utilisé aucune mise en page - vous devriez en utiliser une pour la rendre plus belle !). Dans QGis, le fichier *.ui est défini comme forme dans la table des attributs etform_open()est utilisé comme fonction d'initialisation python, voir également la documentation ici : http://docs.qgis.org/2.2/de/docs/training_manual/create_vector_data/forms.html#hard-fa-associating-the-form-with-your- couche

Le code pour calculer la moyenne et la quantité lors de la modification des valeurs de pouls ou de pas ressemble à ceci :

de PyQt4.QtGui import QLineEdit, QSpinBox form = Aucun pas = Aucun pulse = Aucun def form_open(my_dialog, layer_id, feature_id): forme globale global pulse global steps form = my_dialog pulse = form.findChild(QSpinBox, "pulse") pulse. valueChanged.connect(calculate_avg_and_quantity) steps = form.findChild(QSpinBox, "steps") steps.valueChanged.connect(calculate_avg_and_quantity) def calculate_avg_and_quantity() : moyenne = form.findChild(QLineEdit, "average") quantité = form.findChild(QLineEdit , "quantity") new_average = pulse.value() / 3.0 average.setText(str(round(new_average, 2))) new_quantity = new_average * steps.value() quantité.setText(str(new_quantity))

Voir la vidéo: QGIS 3: csv-Datei in QGIS einlesen