def fromFile(cls, filename): QDir.setCurrent(os.path.dirname(filename)) fileinfo = QFileInfo(filename) QgsProject.instance().read(fileinfo) xml = open(filename).read() doc = QDomDocument() doc.setContent(xml) return cls(doc)
def fromFile(cls, filename): QDir.setCurrent(os.path.dirname(filename)) fileinfo = QFileInfo(filename) QgsProject.instance().read(fileinfo) xml = open(filename).read() doc = QDomDocument() doc.setContent(xml) return cls(doc)
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) # No idea why we have to set this each time. Maybe QGIS deletes it for # some reason. self.badLayerHandler = BadLayerHandler(callback=self.missing_layers) QgsProject.instance().setBadLayerHandler(self.badLayerHandler) QgsProject.instance().read(fileinfo)
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) # No idea why we have to set this each time. Maybe QGIS deletes it for # some reason. self.badLayerHandler = BadLayerHandler(callback=self.missing_layers) QgsProject.instance().setBadLayerHandler(self.badLayerHandler) QgsProject.instance().read(fileinfo)
def __init__(self, parent, uifile=''): super(XConfigWidget, self).__init__(parent) # load the ui if specified if (uifile): curr_dir = QDir.currentPath() QDir.setCurrent(os.path.dirname(uifile)) uic.loadUi(uifile, self) QDir.setCurrent(curr_dir) self._plugin = None
def __init__( self, parent, uifile = '' ): super(XConfigWidget, self).__init__(parent) # load the ui if specified if ( uifile ): curr_dir = QDir.currentPath() QDir.setCurrent(os.path.dirname(uifile)) uic.loadUi(uifile, self) QDir.setCurrent(curr_dir) self._plugin = None
def read_project(projectfile): """ Read the given project file and extract the layers from it. @param projectfile: The project file to load @return: A tuple with the project parser instance, all project layers, visible layers, settings """ QDir.setCurrent(os.path.dirname(projectfile)) parser = projectparser.ProjectParser.fromFile(projectfile) layers = parser.maplayers() projectlayers = list(parser.visiblelayers()) settings = parser.settings() return parser, layers, projectlayers, settings
def on_pushButton_clicked(self): """ Slot documentation goes here. """ ProgBarValue =0 FolderDir = PyQt4.QtGui.QFileDialog.getExistingDirectory(self, self.tr("Please Select the CSV file Folder."), "" ,PyQt4.QtGui.QFileDialog.ShowDirsOnly) self.lineEdit.setText(FolderDir) JuFolder = QDir(FolderDir) JuFolder.setCurrent(FolderDir) for fileName in glob.glob( '*.csv'): ProgBarValue = ProgBarValue +1 if ProgBarValue == 0: PyQt4.QtGui.QMessageBox.warning(self, "No CSV Files", "This folder contains no CSV files, please select again." ,1, 0)
def main(load_file, image_size, passes, render_types): global IMAGE_SIZE global RENDER_PASSES global RENDER_TYPES IMAGE_SIZE = QSize(image_size[0], image_size[1]) RENDER_PASSES = passes RENDER_TYPES = render_types if load_file.endswith('qgs'): QgsProject.instance().readProject.connect(read_project) QDir.setCurrent(os.path.dirname(load_file)) file_info = QFileInfo(load_file) # noinspection PyUnresolvedReferences QgsProject.instance().read(file_info)
def loadProject(self, project): """ Load a project into the application . """ roam.utils.log(project) roam.utils.log(project.name) roam.utils.log(project.projectfile) roam.utils.log(project.valid) (passed, message) = project.onProjectLoad() if not passed: self.bar.pushMessage("Project load rejected", "Sorry this project couldn't" "be loaded. Click for me details.", QgsMessageBar.WARNING, extrainfo=message) return self.actionMap.trigger() self.closeProject() self.canvas.refresh() self.canvas.repaint() RoamEvents.selectioncleared.emit() # No idea why we have to set this each time. Maybe QGIS deletes it for # some reason. self.badLayerHandler = BadLayerHandler(callback=self.missingLayers) QgsProject.instance().setBadLayerHandler(self.badLayerHandler) self.stackedWidget.setCurrentIndex(3) self.projectloading_label.setText("Project {} Loading".format( project.name)) pixmap = QPixmap(project.splash) w = self.projectimage.width() h = self.projectimage.height() self.projectimage.setPixmap(pixmap.scaled(w, h, Qt.KeepAspectRatio)) QApplication.processEvents() QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) QgsProject.instance().read(fileinfo)
def __add_layer_definition_file(self, file_name, root_group): """ shamelessly copied from https://github.com/qgis/QGIS/blob/master/src/core/qgslayerdefinition.cpp """ qfile = QFile(file_name) if not qfile.open(QIODevice.ReadOnly): return None doc = QDomDocument() if not doc.setContent(qfile): return None file_info = QFileInfo(qfile) QDir.setCurrent(file_info.absoluteDir().path()) root = QgsLayerTreeGroup() ids = doc.elementsByTagName('id') for i in xrange(0, ids.size()): id_node = ids.at(i) id_elem = id_node.toElement() old_id = id_elem.text() layer_name = old_id[:-17] date_time = QDateTime.currentDateTime() new_id = layer_name + date_time.toString('yyyyMMddhhmmsszzz') id_elem.firstChild().setNodeValue(new_id) tree_layer_nodes = doc.elementsByTagName('layer-tree-layer') for j in xrange(0, tree_layer_nodes.count()): layer_node = tree_layer_nodes.at(j) layer_elem = layer_node.toElement() if old_id == layer_elem.attribute('id'): layer_node.toElement().setAttribute('id', new_id) layer_tree_elem = doc.documentElement().firstChildElement( 'layer-tree-group') load_in_legend = True if not layer_tree_elem.isNull(): root.readChildrenFromXML(layer_tree_elem) load_in_legend = False layers = QgsMapLayer.fromLayerDefinition(doc) QgsMapLayerRegistry.instance().addMapLayers(layers, load_in_legend) nodes = root.children() for node in nodes: root.takeChild(node) del root root_group.insertChildNodes(-1, nodes) return None
def __add_layer_definition_file(self, file_name, root_group): """ shamelessly copied from https://github.com/qgis/QGIS/blob/master/src/core/qgslayerdefinition.cpp """ qfile = QFile(file_name) if not qfile.open(QIODevice.ReadOnly): return None doc = QDomDocument() if not doc.setContent(qfile): return None file_info = QFileInfo(qfile) QDir.setCurrent(file_info.absoluteDir().path()) root = QgsLayerTreeGroup() ids = doc.elementsByTagName('id') for i in xrange(0, ids.size()): id_node = ids.at(i) id_elem = id_node.toElement() old_id = id_elem.text() layer_name = old_id[:-17] date_time = QDateTime.currentDateTime() new_id = layer_name + date_time.toString('yyyyMMddhhmmsszzz') id_elem.firstChild().setNodeValue(new_id) tree_layer_nodes = doc.elementsByTagName('layer-tree-layer') for j in xrange(0, tree_layer_nodes.count()): layer_node = tree_layer_nodes.at(j) layer_elem = layer_node.toElement() if old_id == layer_elem.attribute('id'): layer_node.toElement().setAttribute('id', new_id) layer_tree_elem = doc.documentElement().firstChildElement('layer-tree-group') load_in_legend = True if not layer_tree_elem.isNull(): root.readChildrenFromXML(layer_tree_elem) load_in_legend = False layers = QgsMapLayer.fromLayerDefinition(doc) QgsMapLayerRegistry.instance().addMapLayers(layers, load_in_legend) nodes = root.children() for node in nodes: root.takeChild(node) del root root_group.insertChildNodes(-1, nodes) return None
def loadProject(self, project): """ Load a project into the application . """ roam.utils.log(project) roam.utils.log(project.name) roam.utils.log(project.projectfile) roam.utils.log(project.valid) (passed, message) = project.onProjectLoad() if not passed: self.bar.pushMessage("Project load rejected", "Sorry this project couldn't" "be loaded. Click for me details.", QgsMessageBar.WARNING, extrainfo=message) return self.actionMap.trigger() self.closeProject() self.canvas.refresh() self.canvas.repaint() self.infodock.clearResults() # No idea why we have to set this each time. Maybe QGIS deletes it for # some reason. self.badLayerHandler = BadLayerHandler(callback=self.missingLayers) QgsProject.instance().setBadLayerHandler(self.badLayerHandler) self.stackedWidget.setCurrentIndex(3) self.projectloading_label.setText("Project {} Loading".format(project.name)) pixmap = QPixmap(project.splash) w = self.projectimage.width() h = self.projectimage.height() self.projectimage.setPixmap(pixmap.scaled(w,h, Qt.KeepAspectRatio)) QApplication.processEvents() QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) QgsProject.instance().read(fileinfo)
def from_file(cls, filename, canvas, relative_base=None): """ Load a project file from a path. :param filename: The path to the project file. :param canvas: (optional) Passing a canvas will auto add layers to the canvas when the load is loaded. :param relative_base_path: (optional) Relative base path for the project file to load layers from :return: A Project object which wraps QgsProject.instance() """ QgsProject.instance().clear() bridge = None if canvas: bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas) if relative_base is None: relative_base = os.path.dirname(filename) QDir.setCurrent(relative_base) QgsProject.instance().read(QFileInfo(filename)) if bridge: bridge.setCanvasLayers() return cls(bridge)
def downloadFile(self): url = QUrl(self.url_text.text()) if self.txt_location.text() == "": QDir.setCurrent("$HOME/Downloads") else: QDir.setCurrent(self.loc) self.statusbar.showMessage("Downloading") fileInfo = QFileInfo(url.path()) fileName = fileInfo.fileName() if QFile.exists(fileName): QFile.remove(fileName) self.outFile = QFile(fileName) if not self.outFile.open(QIODevice.WriteOnly): QMessageBox.information( self, 'Error', 'Unable to save the file %s: %s.' % (fileName, self.outFile.errorString())) self.outFile = None return mode = QHttp.ConnectionModeHttp port = url.port() if port == -1: port = 0 self.http.setHost(url.host(), mode, port) self.httpRequestAborted = False path = QUrl.toPercentEncoding(url.path(), "!$&'()*+,;=:@/") if path: path = str(path) else: path = '$HOME/Downloads' # Download the file. self.httpGetId = self.http.get(path, self.outFile)
def downloadFile(self): url = QUrl(self.url_text.text()) if self.txt_location.text()=="": QDir.setCurrent("$HOME/Downloads") else: QDir.setCurrent(self.loc) self.statusbar.showMessage("Downloading") fileInfo = QFileInfo(url.path()) fileName = fileInfo.fileName() if QFile.exists(fileName): QFile.remove(fileName) self.outFile = QFile(fileName) if not self.outFile.open(QIODevice.WriteOnly): QMessageBox.information(self, 'Error', 'Unable to save the file %s: %s.' % (fileName, self.outFile.errorString())) self.outFile = None return mode = QHttp.ConnectionModeHttp port = url.port() if port == -1: port = 0 self.http.setHost(url.host(), mode, port) self.httpRequestAborted = False path = QUrl.toPercentEncoding(url.path(), "!$&'()*+,;=:@/") if path: path = str(path) else: path = '$HOME/Downloads' # Download the file. self.httpGetId = self.http.get(path, self.outFile)
def loadProject(self, project): """ Load a project into the application . """ roam.utils.log(project) roam.utils.log(project.name) roam.utils.log(project.projectfile) roam.utils.log(project.valid) (passed, message) = project.onProjectLoad() if not passed: QMessageBox.warning(self.mainwindow, "Project Load Rejected", "Project couldn't be loaded because {}".format(message)) return self.actionMap.trigger() self.closeProject() self.canvas.freeze() self.infodock.clearResults() # No idea why we have to set this each time. Maybe QGIS deletes it for # some reason. self.badLayerHandler = BadLayerHandler(callback=self.missingLayers) QgsProject.instance().setBadLayerHandler(self.badLayerHandler) self.stackedWidget.setCurrentIndex(3) self.projectloading_label.setText("Project {} Loading".format(project.name)) self.projectimage.setPixmap(QPixmap(project.splash)) QApplication.processEvents() QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) QgsProject.instance().read(fileinfo) print project.projectfile print QgsProject.instance().error()
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) QgsProject.instance().read(fileinfo)
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) self.projectLocationLabel.setText("Project File: {}".format( os.path.basename(project.projectfile))) QgsProject.instance().read(fileinfo)
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) QgsProject.instance().read(fileinfo)
def on_pushButton_2_clicked(self): """ Slot documentation goes here. """ PF = '' Result = [] ProgBarValue = 0 # TODO: not implemented yet if self.StationBox.count() == 0: PyQt4.QtGui.QMessageBox.warning(self, "Not select Station or Model yet", "Please select correct Station name and Model Name." ,1, 0) if self.lineEdit_2.text() == '': PyQt4.QtGui.QMessageBox.warning(self, "Missing file name", "Please input the file name." ,1, 0) else: FileName = self.lineEdit_2.text() FolderDir = self.lineEdit.text() CurrentFolder = QDir(FolderDir) ResultFolder = QDir(FolderDir + "\\Result\\" ) ResultFolder2 = FolderDir + "\\Result\\" CurrentFile = QFile(FileName+".xls") # Generate the title according to the configuration file print TitleIndex for item in TitleIndex: if item != "Null": sheet1.write(0,TitleIndex.index(item)+3,item,TitleFormat) sheet1.col(TitleIndex.index(item)+3).width = 4000 ResultFolder.setCurrent(FolderDir) for fileName in glob.glob( '*.csv'): ProgBarValue = ProgBarValue +1 if ProgBarValue == 0: PyQt4.QtGui.QMessageBox.warning(self, "No CSV Files", "This folder contains no CSV files, please select again." ,1, 0) for fileName in glob.glob( '*.csv'): Num = glob.glob( '*.csv').index(fileName)+1 print glob.glob( '*.csv').index(fileName), ":", fileName self.progressBar.setValue(round(float(Num)/float(ProgBarValue)*100)) # Open CSV file and use ',' to seperate the column reader = csv.reader(open(fileName), delimiter=",") # First Column to Save File name instead of Serial No. or Test Time sheet1.row(Num).write(0, fileName, NormalFormat) for row in reader: # search every row in the csv file if row != [] and row[0] == 'Part Number' : PartNumber = row[1] sheet1.row(Num).write(1, PartNumber, NormalFormat) if row != [] and ( row[0] == 'OVERALL RESULT' or row[0] == 'DUT P/F' or row[0] == 'Overall Result' ) : PF = row[1] if (PF.find('F')>0) or (PF.find('f')>0): sheet1.row(Num).write(2, PF, FailFormat) else: sheet1.row(Num).write(2, PF, PassFormat) for item in CellIndex: if item != "Null": if reader.line_num == (StrConversionY(item)): if(row != [] and len(row)>= StrConversionX(item)): #Result.append(row[StrConversionX(item)-1]) TempResult = row[StrConversionX(item)-1] if (TempResult.find('F')>0) or (TempResult.find('f')>0): sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, FailFormat) else: if(str.isalpha(TempResult) or str.istitle(TempResult)): # if the contain is not numbers. sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, NormalFormat) elif(str.isspace(TempResult)): # if the contain is not numbers. sheet1.row(Num).write(CellIndex.index(item)+3, TempResult, NormalFormat) else: if row[StrConversionX(item)].find('F')>0 : sheet1.row(Num).write(CellIndex.index(item)+3, float(TempResult), ItemFailFormat) else: sheet1.row(Num).write(CellIndex.index(item)+3, float(TempResult), NormalFormat) if Result==[] : continue #for i in range(0,len(Result)): # if (Result[i].find('F')>0) or (Result[i].find('f')>0): # sheet1.row(Num).write(i+3, Result[i], FailFormat) # else: # if(str.isalpha(Result[i])): # if the contain is not numbers. # sheet1.row(Num).write(i+3, Result[i], NormalFormat) # elif(str.isspace(Result[i])): # if the contain is not numbers. # sheet1.row(Num).write(i+3, Result[i], NormalFormat) # else: # sheet1.row(Num).write(i+3, float(Result[i]), NormalFormat) #Result = [] self.textEdit.append(fileName) ################################################################## #Save to excel file, Save to the result folder in target directory if not(ResultFolder.exists()): CurrentFolder.mkdir(FolderDir+"\\Result\\") ResultFolder.setCurrent(ResultFolder2) # Set to the working folder!! if CurrentFile.exists(): book.save(FileName+'-'+time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))+'.xls') else: book.save(FileName+'.xls') book.save(TemporaryFile()) PyQt4.QtGui.QMessageBox.warning(self, "Done", "Conversion Done!." ,1, 0) sys.exit(app.exec_())
def loadqgisproject(self, project, projectfile): QDir.setCurrent(os.path.dirname(project.projectfile)) fileinfo = QFileInfo(project.projectfile) self.projectLocationLabel.setText("Project File: {}".format(os.path.basename(project.projectfile))) QgsProject.instance().read(fileinfo)