Re: [Qgis-user] QGIS custom feature forms with python logic - passed in feature

2017-03-27 Thread Martin Bain
Hi Jen,
Its funny, I happened to be playing around with the same sample code from 
NathanW when I saw your post.  I meant to reply earlier but got distracted.  I 
was able to change an attribute of the passed in feature with the modified 
sample below.  (In my case I was curious about dynamically adding controls to 
the form at runtime and getting them to display attribute data.  The upshot of 
that was the data in the dynamically added control was not automatically saved 
(which is understandable), I needed to add code in the validate() routine to 
write the data.


from PyQt4.QtCore import *
from PyQt4.QtGui import *

nameField = None
myDialog = None

def formOpen(dialog,layerid,featureid):
global myDialog
myDialog = dialog
global nameField

#store a reference to the selected layer
global lyr
lyr=layerid

#store a reference to the selected feature
global fid
fid=featureid

buttonBox = dialog.findChild(QDialogButtonBox,"buttonBox")

# Disconnect the signal that QGIS has wired up for the dialog to the button 
box.
buttonBox.accepted.disconnect(myDialog.accept)

# Wire up our own signals.
buttonBox.accepted.connect(validate)
buttonBox.rejected.connect(myDialog.reject)

#dynamically add a control to the form at runtime and populate with the 
value of the "Road_Name" field
nameField = QtGui.QLineEdit(myDialog)
nameField.setObjectName("Road_Name")
myDialog.layout().addWidget(nameField)
nameField.show()
nameField.setText(featureid["Road_Name"])

def validate():
  # Make sure that the name field isn't empty.
if not len(nameField.text()) > 0:
msgBox = QMessageBox()
msgBox.setText("Name field can not be null.")
msgBox.exec_()
else:
# Return the form as accpeted to QGIS.
myDialog.accept()

#update the value of the "Road_Name" field for the selected feature
fid["Road_Name"]=nameField.text()
lyr.updateFeature(fid)

#Call commit to save the changes
#layer.commitChanges()



From: Qgis-user [mailto:qgis-user-boun...@lists.osgeo.org] On Behalf Of Jen 
Swiger
Sent: Thursday, 16 March 2017 8:00 AM
To: qgis-user@lists.osgeo.org
Subject: [Qgis-user] QGIS custom feature forms with python logic - passed in 
feature

Hello,
I hope I am asking this question in the right email list. I may ask in the qgis 
stack exchange as well.
I am working off this example 
https://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/
 and adjusting to meet my needs.
When the formOpen function is called, the dialog, layer, and feature is passed 
in.
I want to edit the feature that is passed in but code like
mylayer.changeAttribute(myfeature.id<http://myfeature.id>(), 10, 1)
doesn't seem to be working because myfeature.id<http://myfeature.id>() returns 
0.
What code should I be using instead to edit a field in the feature?
Thanks!
Jen

This email is intended for the named recipient only.  The information it 
contains may be confidential.  If you are not the intended recipient you must 
not reproduce or distribute any part of this email, disclose its contents to 
any other party or take any action in reliance on it.  If you have received 
this email in error, please contact the sender immediately and delete the 
message.
___
Qgis-user mailing list
Qgis-user@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

[Qgis-user] QGIS custom feature forms with python logic - passed in feature

2017-03-15 Thread Jen Swiger
Hello,

I hope I am asking this question in the right email list. I may ask in the
qgis stack exchange as well.

I am working off this example
https://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with-python-logic/
and adjusting to meet my needs.

When the formOpen function is called, the dialog, layer, and feature is
passed in.

I want to edit the feature that is passed in but code like
mylayer.changeAttribute(myfeature.id(), 10, 1)
doesn't seem to be working because myfeature.id() returns 0.

What code should I be using instead to edit a field in the feature?

Thanks!
Jen
___
Qgis-user mailing list
Qgis-user@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user