def tree_item_click(self, item): from_node = item.text(0) attr_list = cmds.listAttr(str(from_node), userDefined=True) self.edit_attrs_table.clear() self.add_table_header() if attr_list: self.edit_attrs_table.setColumnCount(int(len(attr_list))) self.edit_attrs_table.setRowCount(1) vertical_item = QtGui.QTableWidgetItem() vertical_item.setText(from_node) self.edit_attrs_table.setVerticalHeaderItem(0, vertical_item) for i, attr in enumerate(attr_list): item = QtGui.QTableWidgetItem() item.setText(attr) self.edit_attrs_table.setHorizontalHeaderItem(i, item) attr_val = cmds.getAttr('{0}.{1}'.format(from_node, attr)) value_item = QtGui.QTableWidgetItem() value_item.setText(str(attr_val)) value_item.setData(1, [str(from_node), attr]) self.edit_attrs_table.setItem(0, i, value_item)
def fill_edit_table_tree_widget(self, dicts_list): print dicts_list self.editTableWidget.setEditTriggers( QtGui.QAbstractItemView.AllEditTriggers) self.editTableWidget.setAlternatingRowColors(True) self.editTableWidget.setSelectionMode( QtGui.QAbstractItemView.ExtendedSelection) self.editTableWidget.setGridStyle(QtCore.Qt.DashLine) self.add_edit_table_tree_widget_header(dicts_list) # self.editTableWidget.clear() self.editTableWidget.setRowCount(10) vertical_item = QtGui.QTableWidgetItem() vertical_item.setText('aas') self.editTableWidget.setVerticalHeaderItem(0, vertical_item) for i, (key, val) in enumerate(sorted(dicts_list.items())): item = QtGui.QTableWidgetItem() item.setText(key) self.editTableWidget.setHorizontalHeaderItem(i, item) # attr_val = cmds.getAttr('{0}.{1}'.format(from_node, attr)) value_item = QtGui.QTableWidgetItem() value_item.setText(str(val)) # value_item.setData(1, [str(from_node), attr]) self.editTableWidget.setItem(0, i, value_item)
def add_table_header(self): self.edit_attrs_table.setColumnCount(2) item = QtGui.QTableWidgetItem() item.setText('Attribute') self.edit_attrs_table.setHorizontalHeaderItem(0, item) item = QtGui.QTableWidgetItem() item.setText('Value') self.edit_attrs_table.setHorizontalHeaderItem(1, item) self.edit_attrs_table.setRowCount(0)
def list_all_attrs(self): self.attr_shape_dict = {} self.edit_attrs_table.clear() rows_count = 0 col_count = 0 all_attrs_list = [] all_nodes_with_attrs = [] # make lists for j in range(self.from_tree.topLevelItemCount()): from_item = self.from_tree.topLevelItem(j) from_node = from_item.text(0) attr_list = cmds.listAttr(str(from_node), userDefined=True) if attr_list: rows_count += 1 all_attrs_list.extend(attr_list) all_nodes_with_attrs.append(from_node) # filling Table truncated_attrs_list = set(all_attrs_list) col_count = len(truncated_attrs_list) self.edit_attrs_table.setRowCount(rows_count) self.edit_attrs_table.setColumnCount(col_count) for j, node in enumerate(all_nodes_with_attrs): vertical_item = QtGui.QTableWidgetItem() vertical_item.setText(node) self.edit_attrs_table.setVerticalHeaderItem(j, vertical_item) attr_list = [] for i, attr in enumerate(truncated_attrs_list): item = QtGui.QTableWidgetItem() item.setText(attr) self.edit_attrs_table.setHorizontalHeaderItem(i, item) exists = cmds.attributeQuery(attr, node=str(node), exists=True) if exists: attr_val = cmds.getAttr('{0}.{1}'.format(str(node), attr)) value_item = QtGui.QTableWidgetItem() value_item.setText(str(attr_val)) value_item.setData(1, [str(node), attr]) self.edit_attrs_table.setItem(j, i, value_item) attr_list.append(attr) self.attr_shape_dict[str(node)] = attr_list
def add_edit_table_tree_widget_header(self, dicts_list): self.editTableWidget.setColumnCount(len(dicts_list)) for i, (key, val) in enumerate(sorted(dicts_list.items())): # self.editTableWidget.headerItem().setText(i, key) item = QtGui.QTableWidgetItem() item.setText(key) self.editTableWidget.setHorizontalHeaderItem(i, item)