Beispiel #1
0
    def setTable(self, data, setNotes=False):
        # - Init
        name_column = ['Class Name', 'Class Type', 'Class Members', 'Note']

        self.blockSignals(True)
        self.setColumnCount(len(name_column))
        self.setRowCount(len(data.keys()))
        self.setSortingEnabled(
            False
        )  # Great solution from: https://stackoverflow.com/questions/7960505/strange-qtablewidget-behavior-not-all-cells-populated-after-sorting-followed-b

        # - Populate
        for row, key in enumerate(sorted(data.keys())):

            item_groupName = QtGui.QTableWidgetItem(str(key))
            item_groupPos = QtGui.QTableWidgetItem(str(data[key][1]))
            item_groupMem = QtGui.QTableWidgetItem(' '.join(data[key][0]))

            self.setItem(row, 0, item_groupName)
            self.setItem(row, 1, item_groupPos)
            self.setItem(row, 2, item_groupMem)

            if setNotes:
                try:
                    item_groupNote = QtGui.QTableWidgetItem(data[key][2])
                    self.setItem(row, 3, item_groupNote)
                except IndexError:
                    pass

        self.setHorizontalHeaderLabels(name_column)
        self.blockSignals(False)
        self.setSortingEnabled(True)
Beispiel #2
0
    def class_add_new(self):
        if self.tab_groupKern.rowCount > 0:
            self.tab_groupKern.insertRow(0)
            item_groupName = QtGui.QTableWidgetItem(
                'Class_%s' % self.tab_groupKern.rowCount)
            item_groupPos = QtGui.QTableWidgetItem('KernLeft')
            item_groupMem = QtGui.QTableWidgetItem('')

            self.tab_groupKern.setItem(0, 0, item_groupName)
            self.tab_groupKern.setItem(0, 1, item_groupPos)
            self.tab_groupKern.setItem(0, 2, item_groupMem)
        else:
            layer = self.cmb_layer.currentText
            empty_table = {layer: {'Class_1': [[''], 'KernLeft']}}
            self.update_data(empty_table)
Beispiel #3
0
    def setTable(self, data, reset=False):
        name_row, name_column = [], []
        self.blockSignals(True)

        # - Populate
        for n, layer in enumerate(sorted(data.keys())):
            name_row.append(layer)

            for m, key in enumerate(sorted(data[layer].keys())):
                name_column.append(key)
                newitem = QtGui.QTableWidgetItem(str(data[layer][key]))

                if self.item(n, m) == None or reset:
                    markColor = QtGui.QColor("white")
                else:
                    if self.item(n, m).text() == newitem.text():
                        markColor = QtGui.QColor("white")
                    else:
                        markColor = QtGui.QColor("aliceblue")

                self.setItem(n, m, newitem)
                self.item(n, m).setBackground(markColor)

        self.setHorizontalHeaderLabels(name_column)
        self.setVerticalHeaderLabels(name_row)
        self.blockSignals(False)
Beispiel #4
0
    def setTable(self, data, reset=False):
        name_row, name_column = [], []
        self.blockSignals(True)

        # - Populate
        for n, layer in enumerate(sorted(data.keys())):
            name_row.append(layer)

            for m, key in enumerate(sorted(data[layer].keys())):
                name_column.append(key)
                newitem = QtGui.QTableWidgetItem(str(data[layer][key]))
                self.setItem(n, m, newitem)

        self.setHorizontalHeaderLabels(name_column)
        self.setVerticalHeaderLabels(name_row)
        self.blockSignals(False)
Beispiel #5
0
    def setTable(self, data, reset=False):
        name_row, name_column = [], []
        self.blockSignals(True)

        self.setColumnCount(max(map(len, data.values())))
        self.setRowCount(len(data.keys()))

        # - Populate
        for n, layer in enumerate(sorted(data.keys())):
            name_row.append(layer)

            for m, key in enumerate(data[layer].keys()):
                # -- Build name column
                name_column.append(key)

                # -- Selectively add data
                if m == 0:
                    newitem = QtGui.QTableWidgetItem(str(data[layer][key]))
                    newitem.setFlags(QtCore.Qt.ItemIsUserCheckable
                                     | QtCore.Qt.ItemIsEnabled
                                     | QtCore.Qt.ItemIsSelectable)
                    newitem.setCheckState(QtCore.Qt.Unchecked)
                    self.setItem(n, m, newitem)

                if 0 < m < 3:
                    combo = QtGui.QComboBox()

                    if m % 2:
                        combo.setStyleSheet(
                            'QComboBox { background-color: rgba(255, 0, 0, 15); }'
                        )
                    else:
                        combo.setStyleSheet(
                            'QComboBox { background-color: rgba(0, 255, 0, 15); }'
                        )

                    combo.addItems(data[layer][key])
                    self.setCellWidget(n, m, combo)

                if 2 < m < len(data[layer].keys()):
                    spin = QtGui.QDoubleSpinBox()

                    if m <= 6:
                        spin.setSuffix(' u')

                        if m % 2:
                            spin.setStyleSheet(
                                'QDoubleSpinBox { background-color: rgba(255, 0, 0, 15); }'
                            )
                        else:
                            spin.setStyleSheet(
                                'QDoubleSpinBox { background-color: rgba(0, 255, 0, 15); }'
                            )

                        spin.setMinimum(0.)
                        spin.setMaximum(1000.)

                    if 7 <= m <= 8:
                        spin.setSuffix(' u')

                        if m % 2:
                            spin.setStyleSheet(
                                'QDoubleSpinBox { background-color: rgba(255, 200, 0, 25); }'
                            )
                        else:
                            spin.setStyleSheet(
                                'QDoubleSpinBox { background-color: rgba(255, 200, 0, 25); }'
                            )

                        spin.setMinimum(0.)
                        spin.setMaximum(1000.)

                    if 9 <= m <= 10:
                        spin.setSuffix(' %')
                        spin.setStyleSheet(
                            'QDoubleSpinBox { background-color: rgba(0, 0, 255, 15); }'
                        )
                        spin.setMinimum(0.)
                        spin.setMaximum(500.)

                    if 10 < m:
                        spin.setMinimum(0)
                        spin.setMaximum(1)
                        spin.setSingleStep(0.01)

                    spin.setValue(data[layer][key])
                    self.setCellWidget(n, m, spin)

        self.setHorizontalHeaderLabels(name_column)
        self.setVerticalHeaderLabels(name_row)
        self.blockSignals(False)