def changeHeading(self, selected): if len(selected) > 0: ## Dialog 상자 띄워서 angle값 입력 받기 # http://www.green-forums.info/greenlib/geolibrary/Lawhead%20J/QGIS%20Python%20Programming%20Cookbook.%2020%20%2852%29/QGIS%20Python%20Programming%20Cookboo%20-%20Lawhead%20J.pdf # initialize the dialog # qid = QInputDialog() # configure the dialog new_heading, ok = QInputDialog.getInt(self.iface.mainWindow(), "Change heading", "Enter heading value", 0, 0, 360, 1) # dialog 창 뜨면, text 입력하고, ok 버튼 누른다. # 입력 결과 출력 print("입력된 heading 값: ", new_heading) ## heading 값 업데이트 # update an attribute with given field index (int) to a given value fid = selected[0] fieldIndex = 2 value = new_heading try: with edit(self.node_layer): self.node_layer.changeAttributeValue( fid, fieldIndex, value) # 수정 결과 출력 print("heading 값이 수정됐습니다! fid: ", fid, "value: ", value) except Exception as err: print(repr(err))
def ask_for_CRS(self, set_locale): # USER MUST SELECT CRS FIRST!! if set_locale == 'sv_SE': default_crs = 3006 else: default_crs = 4326 EPSGID = QInputDialog.getInt(None, "Select CRS", "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:",default_crs) return EPSGID
def get_eid(self, events_npz): self.events_npz = events_npz events = events_npz['array'] self.eid = -1 # assuming events start from 0 if 'GEM_QGIS_TEST' in os.environ: self.eid = self.get_closest_element(self.eid, events['id']) ok = True elif 'scenario' in self.calculation_mode: range_width = self.oqparam['number_of_ground_motion_fields'] ranges = {} for gsim_idx, gsim in enumerate(self.gsims): ranges[gsim] = (gsim_idx * range_width, gsim_idx * range_width + range_width - 1) ranges_str = '' for gsim in ranges: ranges_str += '\n%s: %s' % (gsim, ranges[gsim]) input_msg = "Ranges:%s" % ranges_str else: input_msg = "Range (%s - %s)" % (events[0]['id'], events[-1]['id']) if 'GEM_QGIS_TEST' not in os.environ: while self.eid not in events['id']: if self.eid == -1: is_first_iteration = True self.eid = self.get_closest_element(self.eid, events['id']) if is_first_iteration: msg = 'The first relevant event id is %s' % self.eid level = 'I' else: msg = 'The closest relevant event id is %s' % self.eid level = 'W' log_msg(msg, level=level, message_bar=self.iface.messageBar()) self.eid, ok = QInputDialog.getInt(self.drive_engine_dlg, 'Select an event ID', input_msg, self.eid, events[0]['id'], events[-1]['id']) if not ok: self.reject() return if not ok: self.reject() return log_msg( 'Extracting ground motion fields.' ' Watch progress in QGIS task bar', level='I', message_bar=self.iface.messageBar()) self.extract_npz_task = ExtractNpzTask('Extract ground motion fields', QgsTask.CanCancel, self.session, self.hostname, self.calc_id, self.output_type, self.finalize_init, self.on_extract_error, params={'event_id': self.eid}) QgsApplication.taskManager().addTask(self.extract_npz_task)
def ask_for_CRS(self, set_locale): # USER MUST SELECT CRS FIRST!! if set_locale == 'sv_SE': default_crs = 3006 else: default_crs = 4326 EPSGID = QInputDialog.getInt( None, "Select CRS", "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:", default_crs) return EPSGID
def ras1dSAVolumeData(rgis): nr_slices, ok = QInputDialog.getInt( rgis, 'Number of slices', 'Number of slices for volume calculation:', 10, 3, 30, 1) if not ok: rgis.addInfo(' Incorrect number of slices. Cancelling...') return rgis.addInfo( '<br><b>Calculating elevation-volume data for Storage Areas...</b>') rgis.rdb.process_hecobject(heco.SAVolume, 'pg_create_table') rgis.rdb.process_hecobject(heco.StorageAreas, 'pg_storage_calculator', slices=nr_slices) rgis.rdb.add_to_view(heco.SAVolume()) rgis.addInfo('Done')
def edit_settings(self): """Open dialog with plugin settings.""" s = QSettings() s.beginGroup("serval") k = "undo_steps" cur_val = self.settings[k] val_type = self.default_settings[k]["vtype"] cur_steps = s.value(k, cur_val, val_type) label = 'Nr of Undo/Redo steps:' steps, ok = QInputDialog.getInt(None, "Serval Settings", label, cur_steps) if not ok: return if steps >= 0: s.setValue("undo_steps", steps) self.load_settings() self.uc.show_info("Some new settings may require QGIS restart.")
def drawRunwayExtensions(self): """Draw the extended runway centrelines""" length, okPress = QInputDialog.getInt( None, 'Extended Runway Centrelines', 'The total length in NM:', 8, 1, step=4 ) if not okPress: return try: drawing.drawRunwayExtension(length) except Exception as e: QMessageBox.warning(None, 'QgsOpenScope', str(e))