コード例 #1
0
    def updateTables(self):
        self.ui.table.setRowCount(len(
            self.repos))  # redraw table to update for any changes
        for i, r in enumerate(self.repos):
            self.ui.table.setItem(i, 1, QTableWidgetItem(r[0]))
            colourcell = QTableWidgetItem(f"0x{str(hex(r[1]))[2:].zfill(6)}")
            colourcell.setBackground(QColor(r[1]))
            colourcell.setFlags(colourcell.flags() & ~Qt.ItemIsEditable)
            self.ui.table.setItem(i, 0, colourcell)

        # total objects in nested dict, length of all values + number of columns
        self.ui.initable.setRowCount(
            sum(len(v)
                for v in self.inicontents.values()) + len(self.inicontents))
        secfont = QFont()
        secfont.setFamily(u"Sans Serif")
        secfont.setBold(True)
        pos = 0
        for sec in self.inicontents:
            item = QTableWidgetItem(sec)
            item.setFont(secfont)
            item.setFlags(item.flags() & ~Qt.ItemIsEditable)
            self.ui.initable.setItem(pos, 0, item)
            item = QTableWidgetItem()  # empty tile next to section header
            item.setFlags(
                item.flags() &
                ~Qt.ItemIsEditable)  # done to prevent editing the blank space
            self.ui.initable.setItem(pos, 1, item)
            pos += 1
            for k, v in zip(self.inicontents[sec].keys(),
                            self.inicontents[sec].values()):
                self.ui.initable.setItem(pos, 0, QTableWidgetItem(k))
                self.ui.initable.setItem(pos, 1, QTableWidgetItem(v))
                pos += 1
コード例 #2
0
    :param str code:
    :return:
    """
    code_hex = code.replace('#', '')
    rgb = tuple(int(code_hex[i:i + 2], 16) for i in (0, 2, 3))
    return QColor.fromRgb(rgb[0], rgb[1], rgb[2])


if __name__ == '__main__':
    colors = [("Red", "#FF0000"), ("Green", "#00FF00"), ("Blue", "#0000FF"),
              ("Black", "#000000"), ("White", "#FFFFFF"),
              ("Electric Green", "#41CD52"), ("Dark Blue", "#222840"),
              ("Yellow", "#F9E56d")]
    app = QApplication()
    table = QTableWidget()
    table.setRowCount(len(colors))
    table.setColumnCount(len(colors[0]) + 1)
    table.setHorizontalHeaderLabels(['Name', 'Hex Code', 'Color'])

    for i, (name, code) in enumerate(colors):
        item_name = QTableWidgetItem(name)
        item_code = QTableWidgetItem(code)
        item_color = QTableWidgetItem()
        item_color.setBackground(get_rgb_from_hex(code))
        table.setItem(i, 0, item_name)
        table.setItem(i, 1, item_code)
        table.setItem(i, 2, item_color)
    table.show()
    sys.exit(app.exec_())