Esempio n. 1
0
    def setLayer(self, layer):
        self.clear()
        if layer is None:
            return

        layerDefn = layer.GetLayerDefn()

        rows = min(layer.GetFeatureCount(), self.maxRowCount)
        columns = layerDefn.GetFieldCount()

        self.setRowCount(rows)
        self.setColumnCount(columns)

        # Headers
        for column in range(0, columns):
            fieldDefn = layerDefn.GetFieldDefn(column)
            fieldName = fieldDefn.GetNameRef()
            item = QtGui.QStandardItem(fieldName)
            self.setHorizontalHeaderItem(column, item)

        # Lines
        for row in range(0, rows):
            for column in range(0, columns):
                layer.SetNextByIndex(row)
                feature = layer.GetNextFeature()
                item = self.createItem(layerDefn, feature, column)
                self.setItem(row, column, item)

        # No header for column format line
        for column in range(0, columns):
            item = QtGui.QStandardItem("")
            self.setVerticalHeaderItem(rows, item)
Esempio n. 2
0
    def pcChanged(self):
        curitem = self.pointcloud.text()
        if curitem == "":
            return
        if not os.path.exists(curitem):
            self.pointcloud.setStyleSheet('background-color: rgb(255,140,140);')
            self.pointcloud.setToolTip('Invalid file')
            return
        self.pointcloud.setStyleSheet('')
        self.pointcloud.setToolTip('')

        attrs, entries = getAttributeInformation(curitem, self.project)
        if attrs and entries:
            model = QtGui.QStandardItemModel()
            model.setColumnCount(len(entries) - 1)
            model.setHorizontalHeaderLabels(entries[1:])
            for attr in attrs:
                row = []
                for i in attr[1:]:
                    item = QtGui.QStandardItem(i)
                    item.setEditable(False)
                    row.append(item)
                model.appendRow(row)
            model.setVerticalHeaderLabels([attr[0] for attr in attrs])
            self.attable.setModel(model)
        else:
            self.pointcloud.setStyleSheet('background-color: rgb(255,140,140);')
            self.pointcloud.setToolTip('Invalid file')
Esempio n. 3
0
    def fill_list(self, name_list, lst_var):

        model = QtGui.QStandardItemModel(name_list)
        for i, elt in enumerate(lst_var):
            item = QtGui.QStandardItem(str(elt))
            item.setEditable(False)
            model.appendRow(item)
        name_list.setModel(model)
Esempio n. 4
0
    def select_output_file(self):
        self.fileNames, _filter = QFileDialog.getOpenFileNames(self.dlg, "Select files containing values","E:\studia\semestr21\TMC\Projekt\Monitoring2019-Profile", '*.txt')

        model = QtGui.QStandardItemModel()
        self.dlg.listViewFileNames.setModel(model)
        for filename in self.fileNames:
            item = QtGui.QStandardItem(os.path.basename(filename))
            model.appendRow(item)
Esempio n. 5
0
 def sqlFillQtWidget(self, sql, list):
     [header, data, rowCount] = self.sqlExec(sql)
     model = QtGui.QStandardItemModel(list)
     for line in data:
         item = QtGui.QStandardItem()
         item.setText(line[0])
         item.setData(line, Qt.UserRole)
         model.appendRow(item)
     list.setModel(model)
     list.show()
     return [header, data, rowCount]
Esempio n. 6
0
    def createItem(self, layerDefn, feature, iField):
        fieldDefn = layerDefn.GetFieldDefn(iField)

        value = None
        if fieldDefn.GetType() == ogr.OFTDate:
            if feature.IsFieldSet(iField):
                value = datetime.date(*feature.GetFieldAsDateTime(iField)[:3])
            hAlign = QtCore.Qt.AlignCenter

        elif fieldDefn.GetType() == ogr.OFTInteger:
            if feature.IsFieldSet(iField):
                value = feature.GetFieldAsInteger(iField)
            hAlign = QtCore.Qt.AlignRight

        elif fieldDefn.GetType() == ogr.OFTReal:
            if feature.IsFieldSet(iField):
                value = feature.GetFieldAsDouble(iField)
            hAlign = QtCore.Qt.AlignRight

        elif fieldDefn.GetType() == ogr.OFTString:
            if feature.IsFieldSet(iField):
                value = feature.GetFieldAsString(iField)
            hAlign = QtCore.Qt.AlignLeft

        else:
            if feature.IsFieldSet(iField):
                value = feature.GetFieldAsString(iField)
            hAlign = QtCore.Qt.AlignLeft

        if value is None:
            item = QtGui.QStandardItem(u'NULL')
            item.setForeground(QtGui.QBrush(QtCore.Qt.gray))
            font = item.font()
            font.setItalic(True)
            item.setFont(font)
        else:
            item = QtGui.QStandardItem(str(value))
        item.setTextAlignment(hAlign | QtCore.Qt.AlignVCenter)
        return item
Esempio n. 7
0
def fillMultiColumnListWithData(list,
                                data,
                                headerStringArray,
                                headerWidths=None,
                                dateFormat="%Y-%m-%d"):
    model = QtGui.QStandardItemModel()
    model.clear()
    model.setHorizontalHeaderLabels(headerStringArray)  #noms des colonnes

    # add lines to model
    for line in data:
        values = []
        iColonne = 0
        for cell in line:
            if (iColonne < len(headerStringArray)
                ):  # do not fill list beyond header length
                # cas particulier des dates
                if isinstance(cell, datetime.date):
                    item = QtGui.QStandardItem(cell.strftime("%d-%m-%Y"))
                    item.setData(cell)
                else:
                    item = QtGui.QStandardItem(str(cell))
                item.setData(line,
                             Qt.UserRole)  # underlying data stored in item
                values.append(item)
                iColonne += 1
        model.appendRow(values)

    list.setModel(model)

    if headerWidths is not None:
        for i in range(0, len(headerWidths)):  # columns witdh
            list.setColumnWidth(i, headerWidths[i])

    list.show()

    return model  #return selected model
    def __init__(self, parent=None):
        super(SelectTagsDialog, self).__init__(parent)
        self.setupUi(self)
        tagFile = os.path.join(os.path.dirname(__file__), 'taglist.txt')

        with open(tagFile) as tf:
            tags = tf.readlines()

        model = QtGui.QStandardItemModel()

        for tag in tags:
            item = QtGui.QStandardItem(tag[:-1])
            model.appendRow(item)

        self.listView.setModel(model)