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
: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_())