コード例 #1
0
ファイル: geoRefWindow.py プロジェクト: frpin33/geoRef_QGIS
    def applyGPXDone(self, newListObj):

        self.closeGPXWindow()
        isFirstObj = True

        self.listObjPicture = newListObj
        self.ui.listAvailablePic.clear()

        for obj in self.listObjPicture:

            listItem = QtWidgets.QListWidgetItem(obj.nameInList)
            if isFirstObj:
                firstItem = listItem
                isFirstObj = False

            obj.idInList = id(listItem)

            if obj.isCoordonate:
                color = QtGui.QColor(QtCore.Qt.darkGreen)
                listItem.setForeground(QtGui.QBrush(color))
            elif obj.isEXIF:
                color = QtGui.QColor(QtCore.Qt.red)
                listItem.setForeground(QtGui.QBrush(color))
            else:
                color = QtGui.QColor(QtCore.Qt.darkRed)
                listItem.setForeground(QtGui.QBrush(color))

            self.ui.listAvailablePic.addItem(listItem)

        self.addCanvasMarker(refresh=True)
        self.newPictureSelection(firstItem)
        self.ui.listAvailablePic.setCurrentItem(firstItem)
コード例 #2
0
    def refresh_rules_list(self):
        '''Refresh the 'Active rules' list with rules from rules.json file'''

        self.rulesList.clear()

        # get rules from rules_json file
        if os.path.isfile(self.rules_json):
            with open(self.rules_json) as data:
                rules = json.load(data)

            # if rules exists add one by one to rules list
            if len(rules) is not 0:
                for rule_from_json in list(rules.keys()):
                    # rule list widget to be added to list
                    rule = QtWidgets.QListWidgetItem(self.rulesList)
                    # rule custom look from rule.py file
                    rule_widget = Rule()
                    # fill rule list widget with neded data
                    rule.setWhatsThis(str(rules[rule_from_json]))
                    rule.setSizeHint(
                        QSize(self.rulesList.sizeHint().width(), 35))
                    rule_widget.setWhatsThis(str(rules[rule_from_json]))
                    rule_widget.ruleTitleLabel.setText(rule_from_json)
                    # add actions to rule buttons
                    rule_widget.deleteButton.clicked.connect(
                        self.refresh_rules_list)
                    rule_widget.infoButton.clicked.connect(self.rule_info)
                    rule_widget.editButton.clicked.connect(self.rule_edit)
                    # add rule to rule list
                    self.rulesList.addItem(rule)
                    self.rulesList.setItemWidget(rule, rule_widget)

                self.checkButton.setEnabled(False)
コード例 #3
0
ファイル: QpalsModuleBase.py プロジェクト: lwiniwar/qpals
    def createGroupBox(cls, module_name, box_header, project, params, param_show_list):
        box = QtWidgets.QGroupBox(box_header)
        scroll = QtWidgets.QScrollArea()
        scroll.setWidget(box)
        scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
        scroll.setWidgetResizable(True)
        status = QtWidgets.QListWidgetItem("hidden status")
        mod = cls(execName=os.path.join(project.opalspath, module_name + ".exe"),
                  QpalsProject=project)
        mod.listitem = status
        mod.load()
        for p in mod.params:
            if p.name in params:
                p.val = params[p.name]
                p.changed = True
        ui = mod.getFilteredParamUi(filter=param_show_list)
        advancedBox = QCollapsibleGroupBox.QCollapsibleGroupBox("Advanced options")
        advancedBox.setChecked(False)
        ui.addRow(advancedBox)
        advancedLa = mod.getFilteredParamUi(notfilter=param_show_list)
        advancedBox.setLayout(advancedLa)
        runbar = QtWidgets.QHBoxLayout()
        runprogress = QtWidgets.QProgressBar()
        mod.progressbar = runprogress
        mod.runbtn = QtWidgets.QPushButton("Run module")
        mod.runbtn.clicked.connect(mod.run_async_self)
        runbar.addWidget(runprogress)
        runbar.addWidget(mod.runbtn)
        ui.addRow(runbar)
        box.setLayout(ui)
        height = box.minimumSizeHint().height()
        scroll.setFixedHeight(height + 10)

        return mod, scroll
コード例 #4
0
    def add_list_row(self):
        """Add a new row to the specific list that shares the same name with the button that
        emits the signal that fires the slot."""
        sender_name = self.sender().objectName()
        target_list = self.findChild(qwidgets.QListWidget, sender_name.split('_')[2])
        target_input = self.findChild(qwidgets.QLineEdit, sender_name.split('_')[2] + '_input')

        if target_list is not None and target_input is not None:
            input_text = target_input.text()
            if len(input_text) > 0:
                item = qwidgets.QListWidgetItem(input_text)
                item.setFlags(item.flags() | qcore.Qt.ItemIsEditable)
                target_list.addItem(item)
                target_input.setText('')
コード例 #5
0
 def __init__(self, dictName):
     super(getVectorLayer, self).__init__()
     self.ui = Ui_getVectorLayer()
     self.ui.setupUi(self)
     for cle in dictName:
         item = QtWidgets.QListWidgetItem()
         font = QtGui.QFont()
         font.setPointSize(12)
         item.setFont(font)
         item.setFlags(QtCore.Qt.ItemIsSelectable
                       | QtCore.Qt.ItemIsDragEnabled
                       | QtCore.Qt.ItemIsEnabled)
         item.setText(cle)
         self.ui.listWidget.addItem(item)
     self.ui.listWidget.item(0).setSelected(True)
コード例 #6
0
    def add_resource(self, resource):
        """Add a resource to the minimum needs table.

        :param resource: The resource to be added
        :type resource: dict
        """
        updated_sentence = NeedsProfile.format_sentence(
            resource['Readable sentence'], resource)
        if self.edit_item:
            item = self.edit_item
            item.setText(updated_sentence)
            self.edit_item = None
        else:
            item = QtWidgets.QListWidgetItem(updated_sentence)
        item.resource_full = resource
        self.resources_list.addItem(item)
コード例 #7
0
ファイル: ch.py プロジェクト: matheusfillipe/Topografia
    def addCurva(self, data=None):
        self.listWidget: QtWidgets.QListWidget
        self.comboBox: QtWidgets.QComboBox
        itemN = QtWidgets.QListWidgetItem()
        widget = CurvasWidget(self)
        widget.nome.setText(self.comboBox.currentText().upper())
        widget.horizontalLayout.addStretch()
        widget.horizontalLayout.setSizeConstraint(
            QtWidgets.QLayout.SetFixedSize)
        if data == None:
            try:
                _, _, data = self.lastWidget.read()
                data["D"] = 0
                data["C"] = False
                widget.fill(data,
                            k=self.lastWidget.k.text(),
                            vmax=self.lastWidget.vmax.text())
            except:
                pass
        else:
            widget.fill(data)
            self.comboBox.hide()
            self.btnAdd.hide()
            #self.horizontalSpacer.hide()

        self.listWidget.addItem(itemN)
        self.listWidget.setItemWidget(itemN, widget)

        widget.pushButton.clicked.connect(
            lambda: self.listWidget.takeItem(self.listWidget.row(itemN)))
        widget.pushButton.clicked.connect(lambda: self.deleteCurva)
        widget.pushButton.clicked.connect(self.edited.emit)
        widget.edited.connect(self.edited.emit)

        #        try:
        #            if self.lastWidget:
        #                self.lastWidget.pushButton : QtWidgets.QPushButton
        #                self.lastWidget.setDisabled(True)
        #                lastWidget=self.lastWidget
        #                widget.pushButton.clicked.connect(lambda: lastWidget.setDisabled(False))
        #        except:
        #            pass

        self.lastWidget = widget
        itemN.setSizeHint(widget.sizeHint())
        self.listWidget.scrollToBottom()
        self.edited.emit()
コード例 #8
0
ファイル: geoRefWindow.py プロジェクト: frpin33/geoRef_QGIS
    def addPictureObject(self, path, objDir):
        picName = path.split("/")[-1]
        listItem = QtWidgets.QListWidgetItem(picName)

        objPic = objPicture(path=path,
                            nameInList=picName,
                            idInList=id(listItem),
                            objDir=objDir)
        objPic = self.checkExif(objPic)

        if objPic.isCoordonate:
            color = QtGui.QColor(QtCore.Qt.darkGreen)
            listItem.setForeground(QtGui.QBrush(color))
        elif objPic.isEXIF:
            color = QtGui.QColor(QtCore.Qt.red)
            listItem.setForeground(QtGui.QBrush(color))
        else:
            color = QtGui.QColor(QtCore.Qt.darkRed)
            listItem.setForeground(QtGui.QBrush(color))

        self.ui.listAvailablePic.addItem(listItem)
        self.listObjPicture.append(objPic)
コード例 #9
0
    def print_results(self, results, layer1, layer2):
        '''show results from check_rule'''
        for result in results:

            error = QtWidgets.QListWidgetItem(self.resultList)
            error_widget = Result()

            error.setSizeHint(QSize(self.resultList.sizeHint().width(), 35))

            feature_text1 = layer1 + '\n' + str(result[0])
            self.adjust_text(error_widget.featureID1, feature_text1)

            self.adjust_text(error_widget.resultLabel, self.lang(result[1]))

            if result[2]:
                feature_text2 = layer2 + '\n' + str(result[2])
            else:
                feature_text2 = layer2
            self.adjust_text(error_widget.featureID2, feature_text2)

            self.resultList.addItem(error)
            self.resultList.setItemWidget(error, error_widget)
コード例 #10
0
 def find(self):
     """Search GBIF for the species provided."""
     text = self.search_text.text()
     self.taxonomy_list.clear()
     parsed_species = name_parser(text)[0]
     genus = parsed_species['genusOrAbove']
     try:
         species = parsed_species['specificEpithet']
     except KeyError:
         species = ''
     QgsMessageLog.logMessage('Searching for %s' % text, 'SpeciesExplorer',
                              0)
     # https: // www.gbif.org / species / search?q = Protea % 20
     # repens & rank = SPECIES & qField = SCIENTIFIC & status = ACCEPTED
     url = ('https://api.gbif.org/v1/species/search?'
            'q=%s%%20%s&rank=SPECIES&qField=SCIENTIFIC&status=ACCEPTED' %
            (genus, species))
     matches = gbif_GET(url, None)
     QgsMessageLog.logMessage(str(matches), 'SpeciesExplorer', 0)
     self.results_list.clear()
     names = {}
     for match in matches['results']:
         try:
             name = match['canonicalName']
         except KeyError:
             continue
         if name not in names:
             QgsMessageLog.logMessage(str(match), 'SpeciesExplorer', 0)
             speciesItem = QtWidgets.QListWidgetItem(name)
             if 'nubKey' in match:
                 taxon_key = match['nubKey']
             elif 'speciesKey' in match:
                 taxon_key = match['speciesKey']
             else:
                 continue
             speciesItem.setData(Qt.UserRole, taxon_key)
             self.results_list.addItem(speciesItem)
             names[name] = taxon_key
コード例 #11
0
ファイル: QpalsSection.py プロジェクト: lwiniwar/qpals
    def createWidget(self):
        self.advanced_widget = QtWidgets.QDialog()
        self.simple_widget = QtWidgets.QDialog()
        self.tabs = QtWidgets.QTabWidget()
        ### SIMPLE ###
        self.ls = QtWidgets.QFormLayout()
        self.ls.addRow(QtWidgets.QLabel("Choose input file:"))
        self.txtinfileSimple = QpalsDropTextbox.QpalsDropTextbox(
            layerlist=self.layerlist, filterrex=".*\.odm$")
        hboxsimple1 = QtWidgets.QHBoxLayout()
        hboxsimple1.addWidget(self.txtinfileSimple, 1)
        self.txtinfileSimple.textChanged.connect(self.simpleIsLoaded)
        self.ls.addRow(QtWidgets.QLabel("Input file (odm)"), hboxsimple1)
        self.linetoolBtn = QtWidgets.QPushButton("Pick section")
        self.linetoolBtn.clicked.connect(self.activateLineTool)
        self.linetoolBtn.setEnabled(False)
        self.ls.addRow(self.linetoolBtn)

        self.runSecBtnSimple = QtWidgets.QPushButton("Create section")
        self.runSecBtnSimple.clicked.connect(self.ltool.runsec)
        self.runSecBtnSimple.setEnabled(False)
        self.runSecBtnSimple.setStyleSheet("background-color: rgb(50,240,50)")

        self.runSecBtnView = QtWidgets.QPushButton("Open section in opalsView")
        self.runSecBtnView.clicked.connect(self.ltool.runview)
        self.runSecBtnView.setEnabled(False)
        self.runSecBtnView.setStyleSheet("background-color: rgb(100,100,240)")
        hb = QtWidgets.QHBoxLayout()
        hb.addWidget(self.runSecBtnSimple)
        hb.addWidget(self.runSecBtnView)

        self.simpleLineLayer = QgsMapLayerComboBox()
        self.simpleLineLayer.setFilters(QgsMapLayerProxyModel.LineLayer)
        self.simpleLineLayerChk = QtWidgets.QCheckBox(
            "Visualize (3D) Line Layer:")
        self.ls.addRow(self.simpleLineLayerChk, self.simpleLineLayer)
        self.showSection = QtWidgets.QCheckBox("Show section")
        self.filterStr = QtWidgets.QLineEdit("Class[Ground]")
        self.filterAttrBox = QCollapsibleGroupBox.QCollapsibleGroupBox(
            'Show attribute selection')
        self.filterAttrBox.setLayout(QtWidgets.QGridLayout())
        self.filterAttrBox.setChecked(False)  # hide it
        self.filterAttrs = {}
        self.progress = QtWidgets.QProgressBar()
        self.stateSwitch = QToggleSwitch.QToggleSwitch("vispy", "matplotlib")
        self.showSection.stateChanged.connect(self.checkBoxChanged)
        self.showSection.setCheckState(2)
        self.showSection.setTristate(False)
        self.ls.addRow(self.showSection)
        self.ls.addRow("Filter String:", self.filterStr)
        self.ls.addRow(self.filterAttrBox)
        self.ls.addRow(hb)
        self.ls.addRow(self.progress)
        self.ls.addRow(self.stateSwitch)
        self.simple_widget.setLayout(self.ls)
        ### ADVANCED ###
        lo = QtWidgets.QFormLayout()
        ######
        lo.addRow(
            QtWidgets.QLabel("Step 1. Choose point cloud and visualize it:"))
        self.txtinfile = QpalsDropTextbox.QpalsDropTextbox(
            layerlist=self.layerlist)
        hbox1 = QtWidgets.QHBoxLayout()
        hbox1.addWidget(self.txtinfile, 1)
        lo.addRow(QtWidgets.QLabel("Input file (odm)"), hbox1)
        self.runShdBtn = QtWidgets.QPushButton("Create shading")
        self.runShdBtn.clicked.connect(self.loadShading)
        lo.addRow(self.runShdBtn)
        ######
        self.status = QtWidgets.QListWidgetItem("hidden status")
        lo.addRow(QtWidgets.QLabel("Step 2. Create sections"))
        self.secInst = QpalsModuleBase.QpalsModuleBase(
            execName=os.path.join(self.project.opalspath, "opalsSection.exe"),
            QpalsProject=self.project)
        self.secInst.load()
        self.secInst.listitem = self.status
        secUi = self.secInst.getParamUi()
        lo.addRow(secUi)

        self.runSecBtn = QtWidgets.QPushButton("Calculate sections")
        self.runSecBtn.clicked.connect(self.runSection)
        lo.addRow(self.runSecBtn)
        #######
        lo.addRow(
            QtWidgets.QLabel(
                "Step 3. Use the Section picking tool to show Sections"))
        self.pickSecBtn = QtWidgets.QPushButton("Pick section")
        self.pickSecBtn.clicked.connect(self.activateTool)
        lo.addRow(self.pickSecBtn)

        self.advanced_widget.setLayout(lo)
        self.tabs.addTab(self.simple_widget, "Simple")
        self.tabs.addTab(self.advanced_widget, "Advanced")

        self.scrollwidget = QtWidgets.QScrollArea()
        self.scrollwidget.setWidgetResizable(True)
        self.scrollwidget.setSizePolicy(QtWidgets.QSizePolicy.Ignored,
                                        QtWidgets.QSizePolicy.Ignored)
        self.scrollwidget.setWidget(self.tabs)

        return self.scrollwidget