def add_address_to_list(qtreelist: QTreeWidget, addr): for i in range(qtreelist.topLevelItemCount()): item = qtreelist.topLevelItem(i) # type: QTreeWidgetItem if int(item.text(0), 16) == addr: return None # deduplicate item = QTreeWidgetItem(qtreelist) item.setText(0, "%#x" % addr) item.setFlags(item.flags() | Qt.ItemIsUserCheckable) item.setData(0, Qt.CheckStateRole, Qt.Checked) return item
def _get_checked_items(qlist: QTreeWidget): items = [] for i in range(qlist.topLevelItemCount()): item = qlist.topLevelItem(i) if item.checkState(0) == Qt.Checked: items.append(item) for j in range(item.childCount()): sub_item = item.child(j) if sub_item.checkState(0) == Qt.Checked: items.append(sub_item) return items
def _remove_addr(qlist: QTreeWidget, addr): for i in range(qlist.topLevelItemCount()): qitem = qlist.topLevelItem(i) if int(qitem.text(0), 16) == addr: qlist.takeTopLevelItem(i) return