def add_map(self): (level,ok) = QInputDialog.getInt(self, QCA.translate('AdminHomeMap' ,'Agregar plano'), QCA.translate('AdminHomeMap' ,'Nivel:'), 0,-10,100) if ok : overwrite = True if self.home_map_scene.has_map(level) : ret = QMessageBox.question(self, QCA.translate('AdminHomeMap' ,'Mapa existente'), QCA.translate('AdminHomeMap' ,'El mapa ya existe desea sobrescribirlo'), QMessageBox.Yes| QMessageBox.No, QMessageBox.No) overwrite = (ret == QMessageBox.Yes) if overwrite : file = QFileDialog.getOpenFileName(self, QCA.translate('AdminHomeMap', "Seleccione la imagen del mapa"), QDir.home().absolutePath(), QCA.translate('AdminHomeMap', "Imagenes (*.bmp *.gif *.jpg *.jpeg *.png *.pbm *.pgm *.ppm *.xbm *.xpm)")) if file: self.home_map_scene.set_map(QPixmap(file),level) self.home_map_view.update()
def _getValue(self, title, label, valueType=QVariant.String, defaultValue='', minValue=0, maxValue=0, decimals=0): if valueType == QVariant.Double: return QInputDialog.getDouble(None, title, label, defaultValue, minValue, maxValue, decimals) elif valueType == QVariant.Int: return QInputDialog.getInt(None, title, label, defaultValue, minValue, maxValue) else: return QInputDialog.getText(None, title, label, text=defaultValue)
def setSize(self): oldsize = int(self.strip.config['nleds']) maxsize = int(self.strip.config['nleds_max']) newsize = int(QInputDialog.getInt( self, "Set Size", "Enter Size (0-%d):" % maxsize, oldsize, 0, maxsize)[0]) self.strip.setSize(newsize)
def unsupervisedSettings(self): (number, ok) = QInputDialog.getInt( None, str(self.currentUnsupervisedDecomposer.shortname + " parameters"), "Number of components", 3, 1, 10) if ok: self.currentUnsupervisedDecomposer.setNumberOfComponents(number)
def goto(self, number=None): """ Ask event number in dialog and navigate and to event. """ logging.debug(__name__ + ": goto") if self._dataAccessor.numberOfEvents(): max = self._dataAccessor.numberOfEvents() else: max = sys.maxsize if number != None: ok = (number >= 1, number <= max) else: if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (number, ok) = QInputDialog.getInteger( self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max) else: # Qt 4.5 (number, ok) = QInputDialog.getInt( self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max) if ok: self.cancel() currentEvent = self.dataAccessor().eventNumber() if currentEvent != number: self.navigate(number)
def insertRowsAfter(self, textCursor, table, cell, rowIndex, columnIndex): rows, ok = QInputDialog.getInt(self, "Insert Rows", 'Enter Number of Rows', value=1) if ok and rows > 0: if (rowIndex + 1) < table.rows(): table.insertRows(rowIndex + 1, rows) else: table.appendRows(rows)
def settings(cls): (number, ok) = QInputDialog.getInt(None, "Random Forest parameters", "Number of trees", cls.treeCount, 20, 255) if ok: cls.treeCount = number print "setting number of trees to", cls.treeCount
def setLimit(self): """ Asks for the users limit. """ (value, ok) = QInputDialog.getInt(None, QtCore.QCoreApplication.translate("LDAPTreeItem","Limit"),QtCore.QCoreApplication.translate("LDAPTreeItem","Enter the limit (0 = none):"), self.limit) if ok == True: self.limit = value return ok
def ir_a_linea_dialogo(self): weditor = self.devolver_editor() if weditor is not None: maximo = weditor.lineas linea, ok = QInputDialog.getInt(self, self.tr("Ir a línea"), self.tr("Línea:"), min=1, max=maximo) if ok: weditor.setCursorPosition(linea - 1, 0)
def insertColumnsAfter(self, textCursor, table, cell, rowIndex, columnIndex): cols, ok = QInputDialog.getInt(self, "Insert Columns", 'Enter Number of Columns', value=1) if ok and cols > 0: if (columnIndex + 1) < table.columns(): table.insertColumns(columnIndex+1, cols) else: #table.insertColumns(columnIndex+1, cols) It works, still would like to do it the other way table.appendColumns(cols)
def edit_layer_point_size(layer): """ Interactively edit a layer's point size """ dialog = QInputDialog() size, isok = dialog.getInt(None, 'Point Size', 'Point Size', value=layer.style.markersize, min=1, max=1000, step=1) if isok and size != layer.style.markersize: layer.style.markersize = size
def validate(self): signalChanged = False if self.siteCode() == '': value, ok = QInputDialog.getText(None, 'Site Code', 'Please enter a valid Site Code') if ok and value.strip(): self.setSiteCode(value) signalChanged = True if self.classCode() == '': self.setClassCode(self._planWidget.classCode()) if self.itemId() == '': value = 0 ok = False value, ok = QInputDialog.getInt(None, 'Item ID', 'Please enter a valid Item ID', 1, 1, 99999) if ok and value > 0: self.setItemId(str(value)) signalChanged = True if self.sourceCode() == '': self.setSourceCode(self._planWidget.sourceCode()) if self.sourceClass() == '': self.setSourceClass(self._planWidget.sourceClass()) if self.sourceCode() != 'svy' and self.sourceId() == '': value, ok = QInputDialog.getInt( None, 'Source ID', 'Please enter a valid Source ID Number', 1, 1, 99999) if ok and value > 0: self.setSourceId(str(value)) signalChanged = True if (self.sourceCode() == 'svy' and self.sourceFile() == ''): value, ok = QInputDialog.getText( None, 'Source File', "Please enter the source file name") if ok and value.strip(): self.setSourceFile(value) signalChanged = True if self.editor() == '': value, ok = QInputDialog.getText( None, 'Editor', "Please enter your full name (e.g. 'Dorothy Garrod')") if ok and value.strip(): self.setEditor(value) signalChanged = True if signalChanged: self.metadataChanged.emit()
def crear_conexion(self): tipo = QInputDialog.getItem(self, "Tipo de usuario", "usuario", ["" ,self._SERVIDOR, self._CLIENTE]) self.rol = str(tipo[0]) self.setWindowTitle("Protocolo de transmision de datos --" + self.rol) if self.rol == self._SERVIDOR: port = QInputDialog.getInt(self, "ingrese puerto", "Puerto", 56032) nom = self.transmisor.crear_servidor(port[0]) msg = QMessageBox.information(self, "Servidor", "El nombre del servidor es: " + nom) del msg if self.transmisor.conectar_servidor(): resp = QMessageBox.information(self, "Conectado", "Se ha establecido la conexion con el cliente") del resp elif self.rol == self._CLIENTE: host = QInputDialog.getText(self, "ingrese host", "Host") port = QInputDialog.getInt(self, "ingrese puerto", "Puerto", 56032) self.transmisor.conectar_cliente((str(host[0]), port[0])) else: self.destroy()
def depthPlot(self): if self.dodgyFeatures: offsec, ok = QInputDialog.getInt(self, "Depth Plot", "Time Offset (seconds):", 0) if ok: self.imageDirectoryObj.depth_plot(self.db_path,offsec) else: return False else: self.imageDirectoryObj.depth_plot(self.db_path)
def depthPlot(self): if self.dodgyFeatures: offsec, ok = QInputDialog.getInt(self, "Depth Plot", "Time Offset (seconds):", 0) if ok: self.imageDirectoryObj.depth_plot(self.db_path, offsec) else: return False else: self.imageDirectoryObj.depth_plot(self.db_path)
def zoomDialog(self): if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (zoom, ok) = QInputDialog.getInteger(self.tab(), "Zoom...", "Input zoom factor in percent:", self.zoom(), 0) else: # Qt 4.5 (zoom, ok) = QInputDialog.getInt(self.tab(), "Zoom...", "Input zoom factor in percent:", self.zoom(), 0) if ok: self.setZoom(zoom) self._userZoomLevel = zoom
def _comenzar(self): ok = 0 eleccion, ok1 = QInputDialog.getItem(self, "Algoritmos", "Seleccione un algoritmo", self.algoritmos.keys()) if ok1: self.contenedor = self.algoritmos[str(eleccion)]() self.cant, ok = QInputDialog.getInt(self, "Duracion", "Indique la duracion de la simulacion", min=0, max=60) if ok and ok1: self.setWindowTitle(self.windowTitle() + " --" +str(eleccion)) self.temporizador.start(1000) self.iniciar.setEnabled(False) self.bloquear.setEnabled(True) self._inicializarDatos()
def setLimit(self): """ Asks for the users limit. """ (value, ok) = QInputDialog.getInt( None, QtCore.QCoreApplication.translate("LDAPTreeItem", "Limit"), QtCore.QCoreApplication.translate("LDAPTreeItem", "Enter the limit (0 = none):"), self.limit) if ok == True: self.limit = value return ok
def expandToDepthDialog(self): """ Show dialog and expand center view to depth. """ if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (depth, ok) = QInputDialog.getInteger(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0) else: # Qt 4.5 (depth, ok) = QInputDialog.getInt(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0) if ok: self._treeDepth=depth if self.tab().treeView().selection(): self.onTreeViewSelected(self.tab().treeView().selection())
def mouseReleaseEvent(self, e): if self.currentTerritory: if self.game.state == State.InitialPlacement: self.territoryClaimed.emit(self.currentTerritory.name) return m = e.modifiers() if m & Qt.ShiftModifier: n = 3 elif m & Qt.AltModifier: n = 10 else: n = 1 if self.game.state in (State.InitialDraft, State.Draft): if e.button() == Qt.RightButton: n = self.game.remainingTroops self.drafted.emit(self.currentTerritory.name, n) elif self.game.state in (State.Attack, State.Fortify) and self.game.yourTurn(): if not self.source and self.currentTerritory.owner == self.game.clientPlayer: self.cancelSelection() self.source = self.currentTerritory mask = self.coloredMask(self.currentTerritory, QColor(170, 170, 0, 200)) self.sourceAnimation = BlinkingAnimation(mask, 1000) self.sourceAnimation.updated.connect(self.update) self.sourceAnimation.finished.connect(self.removeAnimation) self.animations.append(self.sourceAnimation) self.sourceAnimation.start() elif self.source: target = self.currentTerritory if self.game.state == State.Attack and target.owner != self.source.owner: if e.button() == Qt.RightButton: n = self.source.troopCount - 1 self.attacked.emit(self.source.name, target.name, n) elif self.game.state == State.Fortify and target.owner == self.source.owner: if e.button() == Qt.RightButton: n = self.source.troopCount - 1 else: (n, ok) = QInputDialog.getInt(self, "Fortify", "Number of troops to move", 1, 1, self.source.troopCount - 1) if not ok: return self.fortified.emit(self.source.name, target.name, n) elif target.owner == self.source.owner: self.cancelSelection() self.source = self.currentTerritory mask = self.coloredMask(self.currentTerritory, QColor(170, 170, 0, 200)) self.sourceAnimation = BlinkingAnimation(mask, 1000) self.sourceAnimation.updated.connect(self.update) self.sourceAnimation.finished.connect(self.removeAnimation) self.animations.append(self.sourceAnimation) self.sourceAnimation.start() else: self.cancelSelection()
def jump_to_line(self, lineno=None): """ Jump to a specific line number or ask to the user for the line """ if lineno is not None: self.emit(SIGNAL("addBackItemNavigation()")) self.go_to_line(lineno) return maximum = self.blockCount() line = QInputDialog.getInt(self, self.tr("Jump to Line"), self.tr("Line:"), 1, 1, maximum, 1) if line[1]: self.emit(SIGNAL("addBackItemNavigation()")) self.go_to_line(line[0] - 1)
def actionTimeShiftDepth(self): dialogtxt = "Warning: Only use this if you know what you're doing." seconds, ok = QInputDialog.getInt(self,'Offset in Seconds', dialogtxt) if ok: conf_msg = "Are you sure you want to shift the timestamp on your \ depth records by %i seconds?" % int(seconds) reply = QMessageBox.warning(None,"Confirm",conf_msg,QMessageBox.Yes,QMessageBox.No) if reply==QMessageBox.Yes: self.imageDirectoryObj.dive_record_set( self.db_path ).shift_depth_records( int( seconds ) ) result_str = "Great Success: photos time shifted. ...I think..." self.statusBar().showMessage( result_str, 8000) return True else: return False
def expandToDepthDialog(self): """ Show dialog and call expandToDepth() function of tree view. """ if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (depth, ok) = QInputDialog.getInteger(self, "Expand to depth...", "Input depth:", self._treeDepth, 0) else: # Qt 4.5 (depth, ok) = QInputDialog.getInt(self, "Expand to depth...", "Input depth:", self._treeDepth, 0) if ok: self._treeDepth=depth self.collapseAll(False) if self._treeDepth>0: self.expandToDepth(self._treeDepth-1)
def addXMultiple(self): ''' Convenience function to add multiple subsequent datasets for different detector angles. ''' items, OK=QInputDialog.getInt(self, u'Add multiple datasets', u'Enter the number of subsequent datasets to be added:', value=1, min=0, max=304, step=1) if not OK or items==0: return self.addX() if items==1: return self._x_items_to_go=items-1 self.parent_window.initiateReflectivityPlot.connect(self._addXMultiple) self.parent_window.nextFile()
def actionTimeShiftDepth(self): dialogtxt = "Warning: Only use this if you know what you're doing." seconds, ok = QInputDialog.getInt(self, 'Offset in Seconds', dialogtxt) if ok: conf_msg = "Are you sure you want to shift the timestamp on your \ depth records by %i seconds?" % int(seconds) reply = QMessageBox.warning(None, "Confirm", conf_msg, QMessageBox.Yes, QMessageBox.No) if reply == QMessageBox.Yes: self.imageDirectoryObj.dive_record_set( self.db_path).shift_depth_records(int(seconds)) result_str = "Great Success: photos time shifted. ...I think..." self.statusBar().showMessage(result_str, 8000) return True else: return False
def expandToDepthDialog(self): """ Show dialog and expand center view to depth. """ if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (depth, ok) = QInputDialog.getInteger(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0) else: # Qt 4.5 (depth, ok) = QInputDialog.getInt(self.tab(), "Expand to depth...", "Input depth:", self._treeDepth, 0) if ok: self._treeDepth = depth if self.tab().treeView().selection(): self.onTreeViewSelected(self.tab().treeView().selection())
def expandToDepthDialog(self): """ Show dialog and call expandToDepth() function of tree view. """ if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (depth, ok) = QInputDialog.getInteger(self, "Expand to depth...", "Input depth:", self._treeDepth, 0) else: # Qt 4.5 (depth, ok) = QInputDialog.getInt(self, "Expand to depth...", "Input depth:", self._treeDepth, 0) if ok: self._treeDepth = depth self.collapseAll(False) if self._treeDepth > 0: self.expandToDepth(self._treeDepth - 1)
def onAddConnector(self, nodeItem): name, ok = QInputDialog.getItem(self, 'Add connector', 'Select the type of connector', ['in', 'out']) if not ok: return name = str(name) if len(name) == 0: return numPorts, ok = QInputDialog.getInt(self, 'Add connector', 'Select the number of ports', value=1) if not ok or numPorts <= 0: return ports = ['%s_%d' % (name, i) for i in xrange(numPorts)] if name == 'in': conn = InputConnectorItem(name, ports) else: conn = OutputConnectorItem(name, ports) nodeItem.addConnector(conn)
def kmeans(layer, working_directory, nb_class=None): """ WARNING: nb_valid_pixels à calculer ? """ internal_working_directory = os.path.join(working_directory, "Internal") if not os.path.exists(internal_working_directory): os.makedirs(internal_working_directory) logger.debug("enntree dans le kmeans") bands = [] if nb_class is None: testqt, ok = QInputDialog.getInt(None, "Kmeans", "Nombre de classes", 5) if ok: nb_class = testqt # mask = OTBApplications.bandmath([layer.get_source()], "if(im1b1>0,1,0)", working_directory, "mask") output = OTBApplications.kmeans_cli(layer.get_source(), nb_class, internal_working_directory) image_ref = recompose_image(layer, internal_working_directory) # if not os.path.isfile(output_colored): output_colored = OTBApplications.color_mapping_cli_ref_image(output, image_ref, working_directory) return output_colored
def goto(self, number=None): """ Ask event number in dialog and navigate and to event. """ logging.debug(__name__ + ": goto") if self._dataAccessor.numberOfEvents(): max = self._dataAccessor.numberOfEvents() else: max = sys.maxsize if number!=None: ok=(number>=1, number<=max) else: if hasattr(QInputDialog, "getInteger"): # Qt 4.3 (number, ok) = QInputDialog.getInteger(self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max) else: # Qt 4.5 (number, ok) = QInputDialog.getInt(self.plugin().application().mainWindow(), "Goto...", "Enter event number:", self._dataAccessor.eventNumber(), 1, max) if ok: self.cancel() currentEvent=self.dataAccessor().eventNumber() if currentEvent!=number: self.navigate(number)
def kmeans(layer, working_directory, nb_class=None): """ WARNING: nb_valid_pixels à calculer ? """ internal_working_directory = os.path.join(working_directory, "Internal") if not os.path.exists(internal_working_directory): os.makedirs(internal_working_directory) logger.debug("enntree dans le kmeans") bands = [] if nb_class is None: testqt, ok = QInputDialog.getInt(None, "Kmeans", "Nombre de classes", 5) if ok: nb_class = testqt # mask = OTBApplications.bandmath([layer.get_source()], "if(im1b1>0,1,0)", working_directory, "mask") output = OTBApplications.kmeans_cli(layer.get_source(), nb_class, internal_working_directory) image_ref = recompose_image(layer, internal_working_directory) # if not os.path.isfile(output_colored): output_colored = OTBApplications.color_mapping_cli_ref_image( output, image_ref, working_directory) return output_colored
def insertRowsBefore(self, textCursor, table, cell, rowIndex, columnIndex): rows, ok = QInputDialog.getInt(self, "Insert Rows", 'Enter Number of Rows', value=1) if ok and rows > 0: table.insertRows(rowIndex, rows)
def insertColumnsBefore(self, textCursor, table, cell, rowIndex, columnIndex): cols, ok = QInputDialog.getInt(self, "Insert Columns", 'Enter Number of Columns', value=1) if ok and cols > 0: table.insertColumns(columnIndex, cols)
def deleteColumns(self, textCursor, table, cell, rowIndex, columnIndex): cols, ok = QInputDialog.getInt(self, "Delete Columns", 'Enter Number of Columns to be deleted, starting from the current column', value=1) if ok and cols > 0: table.removeColumns(columnIndex, cols)
def set_new_sign_ord(self): num,ok = QInputDialog.getInt(self.app,u"Ввести код иероглифа",u"Введите код") if ok: print num self.sign_picture = SignPictureSimple(unichr(num), self.sign_picture.fontName) self.refresh_setting_to_new_picture()
def deleteRows(self, textCursor, table, cell, rowIndex, columnIndex): rows, ok = QInputDialog.getInt(self, "Delete Rows", 'Enter Number of Rows to be deleted, starting from the current row', value=1) if ok and rows > 0: table.removeRows(rowIndex, rows)
def intBox(parent, title="IntBox", msg="This is a sample int dialog.", default=0): """Makes a box for getting ints""" return QInputDialog.getInt(parent, title, msg, default)
def updateField(): maCouche = iface.activeLayer() layerName = maCouche.name() formTitle = layerName + u" - Attributs d'entités" layers = QgsMapLayerRegistry.instance().mapLayers( ) # liste des couches du projet for w in iface.mainWindow().findChildren(QDialog): if w.windowTitle() == formTitle and w.isActiveWindow(): w.reject() vYear = u"year" vStatus = u"fk_status" year = datetime.now().year for feature in maCouche.getFeatures(QgsFeatureRequest(int(featureId))): msgBox = QMessageBox() if feature[vStatus] == 1301: text_service = u"La conduite ID =" + str( featureId) + u" est déjà en service, depuis " + str( feature[vYear]) msgBox.setText(text_service) msgBox.exec_() else: if not maCouche.isEditable(): maCouche.startEditing() feature[vStatus] = 1301 input_rep = QInputDialog() year, ok = input_rep.getInt( None, u"Annee de service ", u"indiquez l'ann\xe9e de mise en service (4 chiffres)", datetime.now().year, 1860, datetime.now().year, 1) if ok: if not feature[vYear] or feature[vYear] == 0: #print(feature[vYear]) feature[vYear] = year elif feature[vYear] <> year: reply = QMessageBox.question( iface.mainWindow(), u"Différence entre l'année de pose et l'année de mise en service", u"Une année de pose a déjà été saisie : " + str(feature[vYear]) + u" sur la conduite (ID : " + str(feature.id()) + u") , êtes-vous sûr de vouloir la modifier en " + str(year) + u"?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: feature[vYear] = year else: year = feature[vYear] else: #print(feature[vYear]) pass if iface.openFeatureForm(maCouche, feature): maCouche.updateFeature(feature) num_e = 0 num_v = 0 num_h = 0 num_i = 0 for i in range(0, len(layerIds)): if layerIds[i] not in layers: text_layer = u"La couche avec ID = " + str( layerIds[i] ) + u" n'existe plus ou pas dans le projet, merci de vérifier la structure du projet sinon elle ne sera pas prise en compte dans la mise en service" msgBox.setText(text_layer) msgBox.exec_() for layer in layers.values(): uri = QgsDataSourceURI(layer.source()) name = uri.schema() + "." + uri.table() #if name in ["qwat_od.valve", "qwat_od.part" , "qwat_od.hydrant", "qwat_od.subscriber"]: if layer.id() in layerIds: num_elements = 0 if not layer.isEditable(): layer.startEditing() req = QgsFeatureRequest( feature.geometry().boundingBox() ).setFilterExpression(' "fk_status" = \'103\' ') for feat in layer.getFeatures(req): if feat.geometry().intersects( feature.geometry()): num = 0 for f in maCouche.getFeatures( QgsFeatureRequest( feat.geometry().boundingBox()). setFilterExpression( ' "fk_status" != \'1301\' ')): if f.geometry().intersects( feat.geometry( )) and f.id() != featureId: num += 1 if num == 0: if feat[vStatus] != 1301: feat[vStatus] = 1301 if not feat[vYear] or feat[ vYear] == 0: feat[vYear] = year elif feat[vYear] <> year: reply_obj = QMessageBox.question( iface.mainWindow(), u"Différence entre l'année de pose et l'année de mise en service", u"Une année de pose a déjà été saisie : " + str(feat[vYear]) + u" sur l'objet '" + layer.name() + u"' (ID : " + str(feat.id()) + u"), êtes-vous sûr de vouloir la modifier en " + str(year) + u"?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply_obj == QMessageBox.Yes: feat[vYear] = year else: pass layer.updateFeature(feat) num_elements += 1 if name == "qwat_od.valve": num_v = num_elements if name == "qwat_od.part": num_e = num_elements if name == "qwat_od.hydrant": num_h = num_elements if name == "qwat_od.subscriber": num_i = num_elements text = u"La conduite ID =" + str( featureId ) + u" a \xe9t\xe9 mise en service avec l'ann\xe9e : " + str( feature[vYear]) if num_v > 0 or num_e > 0 or num_h > 0 or num_i > 0: text += u"\n ainsi que :" if num_v > 0: text += u"\n - " + str(num_v) + u" vannes" if num_e > 0: text += u"\n - " + str( num_e) + u" \xe9l\xe9ments de montage" if num_h > 0: text += u"\n - " + str(num_h) + u" hydrants" if num_i > 0: text += u"\n - " + str(num_i) + u" introductions" msgBox.setText(text) msgBox.exec_() else: pass else: pass
def unsupervisedSettings(self): (number, ok) = QInputDialog.getInt(None, str(self.currentUnsupervisedDecomposer.shortname + " parameters"), "Number of components", 3, 1, 10) if ok: self.currentUnsupervisedDecomposer.setNumberOfComponents(number)
def address_prompt(self, message="", level="Warning"): message = "{}. Change port".format(message) return QInputDialog.getInt(QInputDialog(), level, message, self.port, 1024, 65535)
def show_plot(self): """ La funcíón show_plot es la encargada de mostar la gráfica de los datos, para realizar dicha tarea, primero se muestran las columnas disponibles para la comparación (lo que llamarémos ejes), cada eje corresponde a una columna del archivo, además permite al usuario seleccionar dos de dichos ejes para realizar la comparación, separa los datos en listas y por último grafica dicha información, """ #Definimos variables locales primereje = [] segundoeje = [] op = 0 e = "eje " n = 0 text_eje_x = " " text_eje_y = " " #Deshabilitamos el botón btn_plot_data y habilitamos el botón btn_save_figure self.btn_plot_data.setEnabled(False) self.btn_save_figure.setEnabled(True) #Contamos el número de ejes temp_list = self.lstlst[1] #Agregamos los ejes dispobibles a la lista a for i in range(1, len(temp_list) + 1): op += 1 self.a.append(e + str(op)) text = ( " EJES DISPONIBLES\n" "----------------------------------------------------------------------------------------------------------\n" ) #Mostramos los ejes disponibles en un área de texto for i in self.a: n = n + 1 text += (str(n) + ". " + i + " \t\t ") self.area_text.setText(text) #Solicitamos al usuario que ingrese el primer eje a graficar (La solicitud se realiza mientras #los datos ingresados sean erroneos) while (True): #Solicitamos el primer eje a graficar, la variable global number_axe_1 contiene el número del eje, #la variable ok contiene información sobre el éxito de la solicitud self.number_axe_1, ok = QInputDialog.getInt( self, "Select Axe", "Ingrese el número del primer eje a graficar") #Definimos las instrucciones correspondientes al éxito de la solicitud if ok: #Verificamos que el número ingresado corresponda a un índice de eje, en caso de que sea cierto #salimos del ciclo while if self.number_axe_1 in range(1, len(self.a) + 1): break #Procesamos el posible error de que el dato ingresado sea erroneo else: QMessageBox.warning( self, "Select Axe Error", "Ha ocurrido un error, verifique los datos ingresados!!!" ) #Procesamos un posible error en caso de que la solicitud no se realice con éxito else: QMessageBox.warning( self, "Select Axe Error", "Ha ocurrido un error, verifique los datos ingresados!!!") #Solicitamos al usuario que ingrese el segundo eje a graficar (La solicitud se realiza mientras #los datos ingresados sean erroneos) while (True): #Solicitamos el segundo eje a graficar, la variable global number_axe_2 contiene el número del eje, #la variable ok contiene información sobre el éxito de la solicitud self.number_axe_2, ok = QInputDialog.getInt( self, "Select Axe", "Ingrese el número del segundo eje a graficar") #Definimos las instrucciones correspondientes al éxito de la solicitud if ok: #Verificamos que el número ingresado corresponda a un índice de eje if self.number_axe_2 in range(1, len(self.a) + 1): #Comprobamos que el número ingresado para el segundo eje sea diferente del número ingresado #para el primer eje, si la condición se cumple salimos del while if (self.number_axe_1 != self.number_axe_2): break #Procesamos el posible error de que el dato ingresado sea igual al primero else: QMessageBox.warning( self, "Select Axe Error", "Ha ocurrido un error, Debe seleccionar un eje diferente!!" ) #Procesamos el posible error de que el dato ingresado sea erroneo else: QMessageBox.warning( self, "Select Axe Error", "Ha ocurrido un error, verifique los datos ingresados!!!" ) #Procesamos un posible error en caso de que la solicitud no se realice con éxito else: QMessageBox.warning( self, "Select Axe Error", "Ha ocurrido un error, verifique los datos ingresados!!!") #Agregamos los datos de los ejes a comparar en dos listas for i in self.lstlst: primereje.append(i[self.number_axe_1 - 1]) segundoeje.append(i[self.number_axe_2 - 1]) #Agregamos los datos de los ejes a comparar en dos cadenas for i in range(len(primereje)): text_eje_x += (primereje[i]) + "\n " for i in range(len(segundoeje)): text_eje_y += (segundoeje[i]) + "\n " #Mostramos en las áreas de texto data_eje_x y data_eje_y las cadenas que contienen los datos self.data_eje_x.setText(text_eje_x) self.data_eje_y.setText(text_eje_y) #Preparamos la figura para mostrar la gráfica self.figure.clf() ax = self.figure.add_subplot(111) #Mostramos la gráfica de los datos ax.plot(primereje, segundoeje, 'r.-') #Agregamos un título a la gráfica ax.set_title(self.a[self.number_axe_2 - 1] + " vs " + self.a[self.number_axe_1 - 1]) #Mostramos los datos self.canvas.draw()
def select_file(self): """ La función select_files permite seleccionar de la lista de archivos disponibles un archivo, además se encarga de crear las estructuras de datos necesarias para almacenarlas en memoria local y de corregir posibles errores en los datos """ #Definimos variables locales error = [] indiceserror = [] filaserror = [] #Deshabilitamos el botón btn_select_file y habilitamos el botón btn_plot_data self.btn_select_file.setEnabled(False) self.btn_plot_data.setEnabled(True) #Solicitamos al usuario que ingrese el índice del archivo a ser cargado, la variable number_file almacena #dicho índice, mientras la variable ok almacena el estado de la solicitud number_file, ok = QInputDialog.getInt( self, "Select File", "Ingrese el número del archivo a procesar") #Verificamos que la variable ok contenga un dato exitoso, esto es, verdadero if ok: #Verificamos que el número ingresado por el usuario corresponda al índice de un archivo if number_file in range(1, len(self.lista) + 1): #Guardamos en la variable file el nombre del archivo file = self.lista[number_file - 1] #Abrimos el archivo openf = open(file) #Mostramos en el campo de texto file_loaded_text el nombre del archivo cargado self.file_loaded.setText("Se ha abierto el archivo " + openf.name) #Creamos la variable route que contiene la ruta absoluta del archivo route = self.cwd + "/" + openf.name #Mostramos en el campo de texto dir_file_loaded la ruta self.dir_file_loaded.setText(route) #Procesamos el archivo cargado eliminando comas y puntoycomas que se encuentren en los archivos for line in openf: #Realizamos los procedimientos necesarios en caso de que el archivo sea txt if ".txt" in file: if "," in line: temp_list = line.split(",") if ";" in line: temp_list = line.split(";") #Agregamos los datos a la lista lstlst self.lstlst.append(temp_list) # Realizamos los procedimientos necesarios en caso de que el archivo sea csv if ".csv" in file: temp_list = line.split(";") # Agregamos los datos a la lista lstlst self.lstlst.append(temp_list) #Procesamos la lista lstlst eliminando posibles errores for i in self.lstlst: for j in i: #Intentamos convertir los datos de la lista en números reales try: j = float(j) #Capturamos cualquier posible error en el proceso de conversión y obtenemos el índice del error except ValueError: error.append(j) indiceserror.append(i.index(j)) filaserror.append(self.lstlst.index(i)) #Eliminamos de lstlst los datos que contengan errores for i in range(0, len(error)): self.lstlst[filaserror[i]].remove(error[i]) self.lstlst[filaserror[i]].insert(indiceserror[i], None) #Mostramos una alerta en caso de que el usuario ingrese un número que no corresponde aun índice else: QMessageBox.warning( self, "Select File Error", "Ha ocurrido un error, verifique los datos ingresados!!!") #Habilitamos el botón btn_select_file y deshabilitamos el botón btn_plot_data self.btn_select_file.setEnabled(True) self.btn_plot_data.setEnabled(False) #Procesamos un posible error en la entrada de datos, esto es, ok es falso else: QMessageBox.warning( self, "Select File Error", "Ha ocurrido un error, verifique los datos ingresados!!!") #Habilitamos el botón btn_select_file y deshabilitamos el botón btn_plot_data self.btn_select_file.setEnabled(True) self.btn_plot_data.setEnabled(False)
def updateField(): maCouche = iface.activeLayer() layerName = maCouche.name() formTitle = layerName + u" - Attributs d'entités" layers = QgsMapLayerRegistry.instance().mapLayers() # liste des couches du projet for w in iface.mainWindow().findChildren(QDialog): if w.windowTitle() == formTitle and w.isActiveWindow(): w.reject() vYear = u"year_end" vStatus = u"fk_status" for feature in maCouche.getFeatures(QgsFeatureRequest(int(featureId))): msgBox = QMessageBox() if feature[vStatus] != 1301: if feature[vStatus] == 13002: text_arch = u"La conduite ID ="+str(featureId) + u" a déjà été archivée en " + str(feature[vYear]) else: text_arch = u"La conduite ID ="+str(featureId) + u" ne peut être archivée si elle n'est pas en service" msgBox.setText(text_arch) msgBox.exec_() if feature[vStatus] == 1301: input_rep = QInputDialog() year_end, ok = input_rep.getInt(None, u"Annee d'archivage ", u"indiquez l'ann\xe9e d'archive (4 chiffres)", datetime.now().year, 1800,2999, 1) if ok: if not maCouche.isEditable(): maCouche.startEditing() feature[vStatus] = 13002 feature[vYear] = year_end if iface.openFeatureForm(maCouche, feature): maCouche.updateFeature(feature) num_e = 0 num_v = 0 num_h = 0 num_i = 0 num_a = 0 for i in range(0,len(layerIds)): if layerIds[i] not in layers: text_layer = u"La couche avec ID = "+ str(layerIds[i]) + u" n'existe plus ou pas dans le projet, merci de vérifier la structure du projet sinon elle ne sera pas prise en compte dans l'archivage" msgBox.setText(text_layer) msgBox.exec_() for layer in layers.values(): uri = QgsDataSourceURI(layer.source()) name = uri.schema() + "." + uri.table() #if name in ["qwat_od.valve", "qwat_od.part" , "qwat_od.hydrant"]: #if layer.name() == u"vannes" or layer.name() == u"\xe9l\xe9ments de montage" or layer.name() == u"hydrants" or layer.name() == u"introduction": if layer.id() in layerIds: # print unicode(layer.name()) num_elements = 0 if not layer.isEditable(): layer.startEditing() req = QgsFeatureRequest(feature.geometry().boundingBox()).setFilterExpression(' "fk_status" = \'1301\' ') for feat in layer.getFeatures(req): if feat.geometry().intersects(feature.geometry()): num = 0 for f in maCouche.getFeatures(QgsFeatureRequest(feat.geometry().boundingBox()).setFilterExpression(' "fk_status" != \'13002\' ')): if f.geometry().intersects(feat.geometry()) and f.id() != featureId: num += 1 # print("int",feat.id(),num) if num == 0: if feat[vStatus] != 13002: feat[vStatus] = 13002 feat[vYear] = year_end layer.updateFeature(feat) num_elements += 1 #if layer.name() == u"vannes": if name == "qwat_od.valve": num_v = num_elements #if layer.name() == u"\xe9l\xe9ments de montage": if name == "qwat_od.part" : num_e = num_elements #if layer.name() == u"hydrants": if name == "qwat_od.hydrant": num_h = num_elements #if layer.name() == u"introduction": if name == "qwat_od.subscriber": num_i = num_elements if name == "qwat_od.usr_prc_point": num_a = num_elements text = u"La conduite ID ="+str(featureId)+ u" a \xe9t\xe9 archiv\xe9e en " + str(year_end) if num_v > 0 or num_e > 0 or num_h > 0 or num_i > 0: text += u"\n ainsi que :" if num_v > 0: text += u"\n - " + str(num_v) + u" vannes" if num_e > 0: text += u"\n - " + str(num_e) + u" \xe9l\xe9ments de montage" if num_h > 0: text += u"\n - " + str(num_h) + u" hydrants" if num_i > 0: text += u"\n - " + str(num_i) + u" introductions" if num_a > 0: text += u"\n - " + str(num_a) + u" \xe9l\xe9ments de protection cathodique" msgBox.setText(text) msgBox.exec_() else: pass else: pass else: pass