def create_edge(self): # If edge already exists, delete it.. if self.edge: self.l_edge.deleteFeature(self.edge.id()) # Two vertices are needed.. if not self.vtx_start or not self.vtx_end: return self.canvas.refresh() # Two DIFFERENT vertices.. if self.vtx_start == self.vtx_end: return self.canvas.refresh() # Create line geometry.. line = QgsGeometry.fromPolyline([ self.vtx_start.geometry().asPoint(), self.vtx_end.geometry().asPoint() ]) # Create the feature.. self.edge = QgsFeature() self.edge.setGeometry(line) self.edge.setFields(self.l_edge.pendingFields()) self.edge.setAttributes( [QPyNullVariant(int), QPyNullVariant(int), QPyNullVariant(int)]) # Add feature to layer.. self.l_edge.addFeature(self.edge) self.canvas.refresh()
def on_accepted(self): if not self.edge: return False self.lim_ge_createur = self.auth_creator[ self.creatorComboBox.currentIndex()][0] self.edge.setAttributes( [QPyNullVariant(int), QPyNullVariant(int), self.lim_ge_createur]) self.l_edge.updateFeature(self.edge) self.canvas.refresh() self.save = True self.close()
def on_accepted(self): # Check if coordinates are entered.. if not self.xLineEdit.text() or not self.yLineEdit.text(): # (◕ε ◕ ) pixmap = os.path.join(os.path.dirname(__file__), r"resources/underline.png") css = "QLabel {background: url(%s) bottom repeat-x;}" % pixmap self.xLabel.setTextFormat(Qt.RichText) self.xLabel.setStyleSheet(css) self.yLabel.setTextFormat(Qt.RichText) self.yLabel.setStyleSheet(css) return None # Set attributes.. som_ge_createur = self.auth_creator[self.creatorComboBox.currentIndex()][0] som_nature = self.natureComboBox.currentText() som_coord_est = float(self.xLineEdit.text()) som_coord_nord = float(self.yLineEdit.text()) som_repres_plane = self.ellips_acronym[self.ellipsComboBox.currentIndex()][0] som_prec_rattcht = int(self.precision_class[self.precisionClassComboBox.currentIndex()][0]) epsg = int(self.ellips_acronym[self.ellipsComboBox.currentIndex()][1]) # Create point geometry.. #point = tools.reproj(QgsPoint(som_coord_est, som_coord_nord), # tools.acronym_to_epsg(som_repres_plane), 4326) point = tools.reproj(QgsPoint(som_coord_est, som_coord_nord), epsg, 4326) # Create the feature.. vertex = QgsFeature() vertex.setGeometry(QgsGeometry.fromPoint(point)) vertex.setFields(self.l_vertex.pendingFields()) vertex.setAttributes([QPyNullVariant(int),QPyNullVariant(int), som_ge_createur, som_nature, som_prec_rattcht, som_coord_est, som_coord_nord, som_repres_plane]) self.l_vertex.addFeature(vertex) self.canvas.refresh() self.accept()
def test_format_values(): fields = ['field1', 'field2'] values = dict(field1='Hello', field2='world') assert utils.format_values(fields, values, with_char="|") == "Hello|world" assert utils.format_values(fields, values, with_char=",") == "Hello,world" assert utils.format_values(fields, values, with_char="\n") == "Hello\nworld" null = QPyNullVariant("QString") values = dict(field1=null, field2='world') assert utils.format_values(fields, values, with_char="|") == "world"
from PyQt4.QtCore import QPyNullVariant def __nonzero__(self): return False def __repr__(self): return 'NULL' def __eq__(self, other): return isinstance(other, QPyNullVariant) or other is None def __ne__(self, other): return not isinstance(other, QPyNullVariant) and other is not None def __hash__(self): return 2178309 QPyNullVariant.__nonzero__ = MethodType(__nonzero__, None, QPyNullVariant) QPyNullVariant.__repr__ = MethodType(__repr__, None, QPyNullVariant) QPyNullVariant.__eq__ = MethodType(__eq__, None, QPyNullVariant) QPyNullVariant.__ne__ = MethodType(__ne__, None, QPyNullVariant) QPyNullVariant.__hash__ = MethodType(__hash__, None, QPyNullVariant) NULL = QPyNullVariant(int)
def field_or_null(v): if v == '' \ or v is None \ or isinstance(v, QPyNullVariant): return QPyNullVariant(str) return v
def field_or_null(field): if field == '' or field is None or isinstance( field, QPyNullVariant): return QPyNullVariant(str) return field
def test_null_check(): null = QPyNullVariant("QString") assert utils.nullcheck(null) is None assert utils.nullcheck("Test") is "Test"