def func(): it = QTreeWidgetItemIterator(tree, flags=QTreeWidgetItemIterator.All) mx = tree.topLevelItemCount() c = 0 tempath = [] while it.value(): if mx > c: item = it.value() if item.isExpanded(): tempath = [item.text(0)] MX = item.childCount() C = 0 nit = QTreeWidgetItemIterator(item, flags=QTreeWidgetItemIterator.All) while nit.value(): if MX > C: global a a = nit.value().parent() if nit.value().text(0) == "jake": tempath.append("jake") MX = 0 mx = 0 break nit += 1 C += 1 else: break it += 1 c += 1 else: break
def get_data(self): self.pb.setValue(0) queue = Queue() self.result_queue = Queue() self.systems_list = [] self.options = {'correlation': self.corr_btn.isChecked(), 'decomposition': self.show_decomp_btn.isChecked(), 'components': [x.text() for x in [self.com_btn, self.rec_btn, self.lig_btn] if x.isChecked()], 'remove_empty_charts': self.remove_empty_charts_btn.isChecked(), 'remove_empty_terms':self.remove_empty_terms_btn.isChecked() ,'hide_toolbar': self.hide_tb_btn.isChecked()} it = QTreeWidgetItemIterator(self.f_item) while it.value(): item = it.value() if item.checkState(1) == Qt.Checked and item.info: self.systems_list.append(item.info) it += 1 self.pb.setRange(0, len(self.systems_list)) if not len(self.systems_list): m = QMessageBox.critical(self, 'Error processing systems', 'You must select at least one system.', QMessageBox.Ok) return it = QTreeWidgetItemIterator(self.f_item) while it.value(): item = it.value() if item.checkState(1) == Qt.Checked and item.info: queue.put(item.info[1]) self.systems_list.append(item.info) it += 1 self.worker.define_dat(API.load_gmxmmpbsa_info, queue, self.result_queue, self.jobs_spin.value()) self.worker.start()
def get_hierarchies(self, **kwargs): """ return selected hierarchy """ only_selected = kwargs.get('only_selected', None) sets_to_display = list() if only_selected: iterator = QTreeWidgetItemIterator(self.hierarchy_widget, QTreeWidgetItemIterator.Checked) else: iterator = QTreeWidgetItemIterator(self.hierarchy_widget) while iterator.value(): # note: if hierarchy value is not a tuple, then this is just top level qTreeWidgetItem that # holds subcategories. We don't want to display all sets from category if type(iterator.value().hierarchy) is not str: if not only_selected: sets_to_display.append(iterator.value().hierarchy) else: if not iterator.value().isDisabled(): sets_to_display.append(iterator.value().hierarchy) iterator += 1 return sets_to_display
def actionClick(self, txt): if not txt: return p = ''.join((r'.*', txt, r'.*')) obj = re.compile(p) cursor = QTreeWidgetItemIterator(self.treeWidget) while cursor.value(): item = cursor.value() if item is not self.treeWidget._rootItem: item.setExpanded(False) item.setSelected(False) cursor = cursor.__iadd__(1) cursor = QTreeWidgetItemIterator(self.treeWidget) while cursor.value(): item = cursor.value() if item is self.treeWidget._rootItem: cursor = cursor.__iadd__(1) continue if item.parent() is self.treeWidget._rootItem: cursor = cursor.__iadd__(1) continue itemtext = item.text(0) if obj.match(itemtext): self.ChangeParentExpanded(item) item.setSelected(True) cursor = cursor.__iadd__(1)
def make_puzzle(self): word_image = [] if self.tree.topLevelItemCount() == 0: self.start_download() return self.disable_buttons() if self.picture_on: iterator = QTreeWidgetItemIterator( self.tree, QTreeWidgetItemIterator.HasChildren) else: iterator = QTreeWidgetItemIterator(self.tree, QTreeWidgetItemIterator.All) if iterator.value() is None: self.c.press_set_keyword_bt.emit() q = QMessageBox(self) q.information(self, 'information', '검색어 키워드가 존재하지 않아요. 그래서 검색어 키워드 버튼을 대신 눌렀습니다~.', QMessageBox.Ok) self.enable_buttons() return while iterator.value(): item = iterator.value() word = item.data(0, 0) pic = '' if self.picture_on: pic = item.path if not os.path.exists(pic): self.c.press_set_keyword_bt.emit() self.enable_buttons() q = QMessageBox(self) q.information(self, 'information', '선택하신 이미지가 존재하지 않습니다. 다시 다운로드 눌러주세요.', QMessageBox.Ok) return if word.strip().find(' ') != -1: if self.korean: word = '가'.join(word.split()) else: word = 'a'.join(word.split()) word_image.append([word, pic]) iterator += 1 self.path = self.get_save_hwp_dir() if self.path: puzzle_worker = PuzzleWorker(wordsearch_generater.MakeWordSearch, word_image, self.width, self.height, self.diff, self.option, self.picture_on, self.korean, self.chosung_scramable, self.uppercase, self.path) puzzle_worker.signal.puzzle_complete.connect(self.puzzle_finish) puzzle_worker.signal.recursionerrormsg.connect(self.recurerrormsg) puzzle_worker.signal.valueerrormsg.connect(self.valerrormsg) self.threadpool.start(puzzle_worker) else: self.enable_buttons()
def choose_slide(self): word_image = [] if self.tree.topLevelItemCount() == 0: self.start_download() return self.disable_buttons() if self.picture_on: iterator = QTreeWidgetItemIterator( self.tree, QTreeWidgetItemIterator.HasChildren) else: iterator = QTreeWidgetItemIterator(self.tree, QTreeWidgetItemIterator.All) if iterator.value() is None: self.c.press_set_keyword_bt.emit() q = QMessageBox(self) q.information(self, 'information', '검색어 키워드가 존재하지 않아요. 그래서 검색어 키워드 버튼을 대신 눌렀습니다~.', QMessageBox.Ok) self.enable_buttons() return else: self.start_download() q = QMessageBox(self) q.information(self, 'information', '사진이 존재하지 않습니다. 이미지 다운로드를 눌렀습니다.', QMessageBox.Ok) self.enable_buttons() return while iterator.value(): item = iterator.value() word = item.data(0, 0) pic = '' if self.picture_on: pic = item.path if not os.path.exists(pic): self.c.press_set_keyword_bt.emit() self.enable_buttons() q = QMessageBox(self) q.information(self, 'information', '선택하신 이미지가 존재하지 않습니다. 다시 다운로드 눌러주세요.', QMessageBox.Ok) return word_image.append([word, pic]) iterator += 1 self.slide_widget = ChooseSlide(self.c, word_image) self.enable_buttons()
def okButtonClicked(self): modules_to_process = {'delete': [], 'install': []} iterator = QTreeWidgetItemIterator(self.tree) item = iterator.value() while item is not None: if item.parent() is not None: if item.parent().parent() is not None: # handle the installed modules to delete repo_name = item.parent().parent().text(0) if repo_name == INSTALLED_MODULES: if item.checkState(0) == Qt.Unchecked: modules_to_process['delete'].append(item.text(0)) # handle the remote modules to install else: if item.checkState(0) == Qt.Checked: item_dict = { 'name': item.text(0), 'repository': repo_name, } modules_to_process['install'].append(item_dict) iterator += 1 item = iterator.value() self.installAndUninstallModules(modules_to_process)
def draw_stuff(self): it = QTreeWidgetItemIterator(self.treeWidget_formula) while it.value(): item = it.value() # 标记为0的列即为未领够料的记录 if item.text(9) == '0': stuffkind = item.text(2) precision = int(item.text(7)) loss = item.text(8) # 处理产品信息的变量,去除系统变量 item.setText(4, self.reckon_expression(item.text(4), 1)) # 计划量 try: presamount = Decimal( rnd(eval(item.text(4), evalenv(self)), precision)) except SyntaxError: if stuffkind + ' 计划量' not in self.errormsg: self.errormsg.append(stuffkind + ' 计划量') presamount = 0 # 把计划量加到产品信息变量中 # self.detail['presamount'] = presamount # 实际量公式,去除系统变量 item.setText(5, self.reckon_expression(item.text(5), 1)) # 领取量公式,去除系统变量 item.setText(6, self.reckon_expression(item.text(6), 1)) # 计算领料量,返回领料情况res, 和标记:是否已经领购料 res = self.reckon_drawamount(stuffkind, presamount, precision, item.text(5), item.text(6), loss) if len(res): self.treeWidget_drawstuff_add_item(res) it += 1 self.is_drawamount_enough()
def selectAll(self): iterator = QTreeWidgetItemIterator(self.treeWidget) iterator += 1 while iterator.value(): item = iterator.value() item.setCheckState(0, Qt.Checked) iterator += 1
def set_state(self, value): self.tab.blockSignals(True) iterator = QTreeWidgetItemIterator(self.tab) while iterator.value(): item = iterator.value() path = [] while item is not None: path.append(str(item.text(0))) item = item.parent() path = "/".join(reversed(path)) path = path.split('/') if len(path) > 1: path = path[1:] if path[0] == value: item = iterator.value() if len(path) == 1: checked = item.checkState(0) #checked=bool(checked) if len(path) > 1: item.setCheckState(0, checked) iterator += 1 self.tab.blockSignals(False)
def clearSitesToApply(self): """ unchecks all objects in site_tree_widget """ iterator = QTreeWidgetItemIterator(self.site_tree_widget, QTreeWidgetItemIterator.Checked) while iterator.value(): obj = iterator.value() obj.setCheckState(0, Qt.Unchecked) iterator += 1
def findParentWidget(self, findID=None): '''scan the tree and find the treeviewwidget with the matching parentOrder''' # if the find id is None then this is the root so return the tree view itself if findID is None: return self.tvOutline # find the parent tree view widget parentWidget = None # iterate through the treeview tvOutlineIterator = QTreeWidgetItemIterator(self.tvOutline, flags = QTreeWidgetItemIterator.All) while tvOutlineIterator: if not tvOutlineIterator.value() is None: # get the treeview widget tvWidget = tvOutlineIterator.value() # get the form item object from the widget formItem = tvWidget.data(0, Qt.UserRole) # get the idNum of the form item object idNum = formItem.itemDict["idNum"] # check to see if this is the idNum we're looking for if idNum == findID: parentWidget = tvWidget break tvOutlineIterator.__iadd__(1) else: break return parentWidget
def items(self): iterator = QTreeWidgetItemIterator(self.ui.plugins, QTreeWidgetItemIterator.All) while iterator.value(): item = iterator.value() iterator += 1 yield item
def findParentWidget(self, findOrder=None): '''scan the tree and find the treeviewwidget with the matching parentOrder''' # if the find id is None then this is the root so return the tree view itself if findOrder is None: return self.tvPath # find the parent tree view widget parentWidget = None # iterate through the treeview tvPathIterator = QTreeWidgetItemIterator( self.tvPath, flags=QTreeWidgetItemIterator.All) while tvPathIterator: if not tvPathIterator.value() is None: queryPathNodeItem = tvPathIterator.value() queryPathNodeDict = queryPathNodeItem.data(0, Qt.UserRole).dict() order = queryPathNodeDict.get("order", 0) # save the value for order if it's greater if order == findOrder: parentWidget = queryPathNodeItem break tvPathIterator.__iadd__(1) else: break return parentWidget
def find_selected_items(self): """Iterate over all children of the tree and save selected items to dictionary.""" self.cp_objs = {} self.iterator = QTreeWidgetItemIterator(self.tree, QTreeWidgetItemIterator.All) while self.iterator.value(): item = self.iterator.value() if item.checkState( 0) == 2: #full-box checked, add item to dictionary if item.parent() is not None: #2nd level item (at least) if item.parent().text( 0 ) in self.cp_objs: #append if parent already present as key in dictionary if self.cp_objs[item.parent().text( 0)] == True: #remove boolean parent key:value self.cp_objs.pop(item.parent().text(0), None) self.cp_objs[item.parent().text(0)] = [ item.text(0) ] else: self.cp_objs[item.parent().text(0)].append( item.text(0)) else: #add new list with item, if parent not yet a key in dictionary self.cp_objs[item.parent().text(0)] = [item.text(0)] else: #1st level item self.cp_objs[item.text(0)] = True self.iterator += 1 self.console.push_vars({'cp_objs': self.cp_objs})
def click_ActiveFairyComboboxItem(self,i): #当点击已激活精灵复选框内容时执行的函数 # 显示点击的精灵的信息 fairyID = self.ActiveFairyComboBox.currentText() if(fairyID =="已激活的精灵"): self.defaultUi() else: self.fairyInfoShow(fairyID) # 已激活精灵复选框选项刷新 self.reflashActiveFairyComboBox() # 选中并展开TreeWidget对应项 item = QTreeWidgetItemIterator(self.treeWidget)# 获取一个迭代器 # 利用迭代器遍历TreeWidget,找被选中的精灵,然后在TreeWidget展开、选中 while(item.value()): if(item.value().text(0)==fairyID): self.treeWidget.expandItem(item.value()) item.value().child(0).setSelected(True) break else: item.value().setSelected(False) item.__iadd__(1) # 迭代器位置+1
def copy_tree(self): """Copy the tree to the clipboard.""" items = [] inval_index = QModelIndex() it = QTreeWidgetItemIterator(self) prev_depth = 0 while it.value(): depth = 0 item = it.value() parent = item.parent() while parent: depth += 1 parent = parent.parent() if depth < prev_depth: items.extend([" |" * depth, "\n"]) if depth: items.extend([" |" * depth, "--", item.text(0), "\n"]) else: items.extend([item.text(0), "\n"]) prev_depth = depth it += 1 QApplication.clipboard().setText("".join(items))
def selectAllSitesToApply(self): """ checks all objects in site_tree_widget, may be useful if the user wants to select all but a few in the list""" iterator = QTreeWidgetItemIterator(self.site_tree_widget, QTreeWidgetItemIterator.NotChecked) while iterator.value(): obj = iterator.value() obj.setCheckState(0, Qt.Checked) iterator += 1
def fetch_item_by_node(self, node): iterator = QTreeWidgetItemIterator(self) while iterator.value(): item = iterator.value() if item.node is node: return item iterator += 1 return None
def select_all_checkbox(self): iterator = QTreeWidgetItemIterator(self.ui.treeWidget_select_test) while iterator.value(): item = iterator.value() item.setCheckState(0, QtCore.Qt.Checked) iterator += 1 self.ui.select_all_button.setEnabled(False) self.ui.deselect_all_button.setEnabled(True)
def find_parent_node(tree, parent_id): iterator = QTreeWidgetItemIterator(tree) while iterator.value(): node = iterator.value() if get_node_data(node).node_id == parent_id: return node iterator += 1 return None
def find_checked(self): iterator = QTreeWidgetItemIterator(self.main.treeWidget) # print(iterator) while iterator.value(): item = iterator.value() if item.checkState(0): self.checked.append(item.text(0)) iterator += 1
def unselect_all(self): iterator = QTreeWidgetItemIterator(self.main.treeWidget) while iterator.value(): item = iterator.value() item.setCheckState(0, QtCore.Qt.Unchecked) iterator += 1 self.main.pushBtnSelectAll.setEnabled(True) self.main.pushBtnUnselectAll.setEnabled(False)
def setCurrentTreeItemByData(self, data): it = QTreeWidgetItemIterator(self.ui.treeWidget) while it.value(): if it.value().data(0, Qt.UserRole) == data: self.ui.treeWidget.setCurrentItem(it.value()) return True it += 1 return False
def _on_tree_item_selection_changed(self): iterator = QTreeWidgetItemIterator(self) while iterator.value(): item = iterator.value() item.widget.hide() iterator += 1 for item in self.selectedItems(): item.widget.show()
def check_status(self): iterator = QTreeWidgetItemIterator(self.ui.treeWidget_select_test) item = iterator.value() while iterator.value(): if item.checkState(0): self.ui.select_all_button.setEnabled(False) self.ui.deselect_all_button.setEnabled(True) iterator += 1
def delete_drawstuff(self, qtreeitems): # qtreeitems: 选中的项目 if len(qtreeitems): it = QTreeWidgetItemIterator(self.treeWidget_formula) root = self.treeWidget_drawstuff.invisibleRootItem() for item in qtreeitems: root.removeChild(item) self.is_drawamount_enough()
def GetSelectedItems(self): interator = QTreeWidgetItemIterator(self.treeWidget, QTreeWidgetItemIterator.Checked) while (interator.value()): item = interator.value() self.arrayResult.append(item.text(0)) interator += 1 self.close()
def on_header_sectionResized(self, p_int, p_int_1, p_int_2): try: it = QTreeWidgetItemIterator(self) while it.value(): it.value().resetText(p_int, p_int_2) it += 1 except ValueError: pass
def hilightFormatInfoTree(self, range): iterator = QTreeWidgetItemIterator(self) while iterator.value(): item = iterator.value() itemRange = item.data(0, Range.RangeRole) #item.setBackground(0, QColor("#dddddd") if itemRange is not None and itemRange.overlaps(range) else QColor("#ffffff")) #item.setProperty("class", "highlighted" if itemRange is not None and itemRange.overlaps(range) else "") iterator += 1