def createTreeItem(self, parent, text, uuid = ""): """ Creates tree items parent: parent item text: item text uuid: complex uuid """ count = parent.childCount() children = [] #making a list of item names for i in range(count): child = parent.child(i) children.append(child.text(0)) #checking if the text is already in the tree widget if text not in children: #case not it should be created item = QTreeWidgetItem(parent) item.setExpanded(True) item.setText(0,text) #adding the complex uuid to the tree widget if uuid != "": item.setText(1, str(uuid)) else: #case already exists the correspondind item should be returned for i in range(count): child = parent.child(i) if child.text(0) == text: item = child return item
def _add_children(item, mod): for ref in mod.refs: try: childMod = self.project.get_module_at_filename(ref) except KeyError: childMod = self.project.get_module_at_dottedname(ref) if childMod in visited: return visited.add(childMod) child = QTreeWidgetItem(item) child.setText(0, ref) self._setup_font(child, ref, childMod.owner) child.setIcon(0, self._select_icon(childMod.owner)) child.setData(0, self.TYPE_MODULE, childMod) child.setData(0, self.TYPE_NODE, None) item.addChild(child) _add_children(child, childMod) for name, sym in mod.symbols.items(): if not isinstance(sym, Name): continue child = QTreeWidgetItem(item) child.setText(0, name) self._setup_font(child, name, sym) child.setIcon(0, self._select_icon(sym)) child.setData(0, self.TYPE_MODULE, mod) child.setData(0, self.TYPE_NODE, mod.symbols[name]) item.addChild(child)
def loadReclassificationConf(self, reclassificationDict): """ Makes the treewidget using the reclassification dictionary obtained from the configuration file """ index = self.edgvVersion self.treeWidget.clear() #invisible root item rootItem = self.treeWidget.invisibleRootItem() for category in reclassificationDict.keys(): if category == 'version': continue if category == 'uiParameterJsonDict': self.populateFromUiParameterJsonDict( reclassificationDict[category]) continue categoryItem = QTreeWidgetItem(rootItem) categoryItem.setText(0, category) for edgvClass in reclassificationDict[category].keys(): classItem = QTreeWidgetItem(categoryItem) classItem.setText(0, edgvClass) for button in reclassificationDict[category][edgvClass].keys(): buttonItem = QTreeWidgetItem(classItem) buttonItem.setText(0, button) for attribute in reclassificationDict[category][edgvClass][ button].keys(): attributeItem = QTreeWidgetItem(buttonItem) attributeItem.setText(0, attribute) attributeItem.setText( 1, reclassificationDict[category][edgvClass] [button][attribute])
def add_modify_account(self, add=False): dlg = AccountSettingsDialog(self) if not add: item = self.widgets.accounts.currentItem() if not item: return account = self.account_items.get(item) if not account: return #account = item.data(0, ITEM_PLACEHOLDER_ROLE).toPyObject() dlg.fill_from(account) else: item = QTreeWidgetItem() result = dlg.exec_() if not result == QDialog.Accepted: return new_a = dlg.values item.setText(0, new_a["name"]) #get icon and name... name, icon = getProtoIconAndName(getattr(yobotproto, new_a["improto"], -1)) item.setText(1, name) item.setIcon(1, icon) if add: if self.account_exists(new_a): print "account already exists.. not adding" return item.setData(0, ITEM_PLACEHOLDER_ROLE, new_a) self.widgets.accounts.addTopLevelItem(item) self.config.accounts.append(new_a) else: account.update(new_a)
def add(self, seq, text, position, foreground=False, background=False, icon=False): from PyQt4.QtGui import QTreeWidgetItem item = QTreeWidgetItem() item.setText(0, text) item.setData(0, Qt.UserRole, position) if foreground: item.setForeground(0, foreground) if background: item.setBackground(0, background) if icon: item.setIcon(0, icon) seq.append(item) return item
def __init__(self): super(LessonSelector, self).__init__() self.setupUi(self) self.lesson = None allLessons = defaultdict(list) for lesson in lessons: allLessons[lesson.group].append(lesson) lessonIcon = QIcon(os.path.dirname(__file__) + '/lesson.gif') for group, groupLessons in allLessons.iteritems(): groupItem = QTreeWidgetItem() groupItem.setText(0, group) for lesson in groupLessons: lessonItem = QTreeWidgetItem() lessonItem.lesson = lesson lessonItem.setText(0, lesson.name) lessonItem.setIcon(0, lessonIcon) groupItem.addChild(lessonItem) self.lessonsTree.addTopLevelItem(groupItem) self.lessonsTree.sortItems(0, 0) self.lessonsTree.expandAll() self.lessonsTree.currentItemChanged.connect(self.currentItemChanged) self.lessonsTree.itemDoubleClicked.connect(self.itemDoubleClicked) self.buttonBox.accepted.connect(self.okPressed) self.buttonBox.rejected.connect(self.cancelPressed) self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
def __add_themen(self): self.ui.TREE_THEMEN.headerItem().setText(0, '') #TODO: resize column to contents #all of these don't work?? self.ui.TREE_THEMEN.header().resizeSection(0, 250) self.ui.TREE_THEMEN.header().setResizeMode( QHeaderView.ResizeToContents) self.ui.TREE_THEMEN.header().setStretchLastSection(True) themen = self.json_settings.themen() for thema_name, thema in themen.iteritems(): tree_thema = QTreeWidgetItem(self.ui.TREE_THEMEN) tree_thema.setText(0, thema_name) tree_thema.setData(0, Qt.UserRole, thema) tree_thema.setFlags(tree_thema.flags() | Qt.ItemIsUserCheckable) if thema_name == 'DKM': tree_thema.setCheckState(0, Qt.Checked) else: tree_thema.setCheckState(0, Qt.Unchecked) if not thema.subthemen is None: for subthema in thema.subthemen: if VRP_DEBUG is True: QgsMessageLog.logMessage( u'Subthema: {0}'.format(subthema.name), DLG_CAPTION) tree_subthema = QTreeWidgetItem() tree_subthema.setText(0, subthema.name) tree_subthema.setData(0, Qt.UserRole, subthema) tree_subthema.setFlags(tree_subthema.flags() | Qt.ItemIsUserCheckable) tree_subthema.setCheckState(0, Qt.Unchecked) tree_thema.addChild(tree_subthema)
def build_menu_item(action): """Return a QTreeWidgetItem with children for all the actions in the submenu.""" menuitem = QTreeWidgetItem() text = qutil.removeAccelelator(action.text()) menuitem.setText(0, _("Menu {name}").format(name=text)) add_actions(menuitem, action.menu().actions()) return menuitem
def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key = snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton()
def createTreeItem(self, parent, text, uuid=""): """ Creates tree items parent: parent item text: item text uuid: complex uuid """ count = parent.childCount() children = [] #making a list of item names for i in range(count): child = parent.child(i) children.append(child.text(0)) #checking if the text is already in the tree widget if text not in children: #case not it should be created item = QTreeWidgetItem(parent) item.setExpanded(True) item.setText(0, text) #adding the complex uuid to the tree widget if uuid != "": item.setText(1, str(uuid)) else: #case already exists the correspondind item should be returned for i in range(count): child = parent.child(i) if child.text(0) == text: item = child return item
def on_import_case(self): query_result = QMessageBox.warning(self, u'警告', u'执行导入操作时,测试标识相同的用例将被覆盖,确认执行导入操作!?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if query_result == QMessageBox.No: return case_files = QFileDialog.getOpenFileNames(self, u'选择用例文件', '.', '') total_import_count = len(case_files) if not total_import_count: return self.process_progressbar.setMaximum(total_import_count) self.process_progressbar.setMinimum(0) fail = 0 import_count = 0 try: for file in case_files: test_case = TestCase() test_case.load_from_file(str(file)) ret = self.testcase_tree.findItems(test_case.case_mark, Qt.MatchCaseSensitive | Qt.MatchExactly, 0) if ret: ret[0].setText(1, unicode(test_case.case_name)) else: item = QTreeWidgetItem() item.setText(0, unicode(test_case.case_mark)) item.setText(1, unicode(test_case.case_name)) item.setText(2, test_case.case_id) item.setCheckState(0, Qt.Checked) self.testcase_tree.addTopLevelItem(item) self.test_cases[test_case.case_mark] = test_case import_count += 1 self.process_progressbar.setValue(import_count) except Exception as e: fail += 1 QMessageBox.information(self, u'提示', u'导入用例文件异常{0}'.format(str(e)), QMessageBox.Yes, QMessageBox.Yes) QMessageBox.information(self, u'提示', u'导入成功{0}个, 失败{1}个'.format(import_count, fail), QMessageBox.Yes, QMessageBox.Yes)
def on_add_testcase(self): """ 添加用例 :return: """ test_case_identification = str(self.test_caseidentify_edit.text()) test_case_name = str(self.test_item_edit.text()) if test_case_identification and test_case_name: if test_case_identification not in self.test_cases: # 在树形列表中增加一项 test_case = self.__generate_test_case(test_case_identification) item = QTreeWidgetItem() item.setText(0, test_case.case_mark) item.setText(1, test_case.case_name) item.setText(2, test_case.case_id) item.setCheckState(0, Qt.Checked) self.testcase_tree.addTopLevelItem(item) else: test_case = self.__generate_test_case(test_case_identification) # 更新树形列表中的用例名称 for i in range(0, self.testcase_tree.topLevelItemCount()): if self.testcase_tree.topLevelItem(i).text(0) == test_case.case_mark: self.testcase_tree.topLevelItem(i).setText(1, test_case.case_name) QMessageBox.information(self, u'提示', u'用例[{0}({1})]已更新'.format(test_case_name, test_case.case_mark), QMessageBox.Yes, QMessageBox.Yes) else: QMessageBox.information(self, u'提示', u'用例标识和用例名称必填', QMessageBox.Yes, QMessageBox.Yes) return
def add_server_tree_item(self, label, parent=None, is_leaf=False): item = QTreeWidgetItem(parent) item.setText(0, unicode(label)) if is_leaf: item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsUserCheckable) self.server_tree.addTopLevelItem(item) return item
def populateConfigParams(self, dlg): """ Populates the dialog with option items and widgets """ self.items = defaultdict(dict) tree = dlg.paramsTreeOL configure_export_action = QAction('...', self) configure_export_action.triggered.connect(self.configureExporter) params = getParams(configure_exporter_action=configure_export_action) for group, settings in params.iteritems(): item = QTreeWidgetItem() item.setText(0, group) for param, value in settings.iteritems(): subitem = self.createOptionItem(tree_widget=tree, parent_item=item, parameter=param, default_value=value) item.addChild(subitem) self.items[group][param] = subitem self.paramsTreeOL.addTopLevelItem(item) item.sortChildren(0, Qt.AscendingOrder) self.paramsTreeOL.expandAll() self.paramsTreeOL.resizeColumnToContents(0) self.paramsTreeOL.resizeColumnToContents(1) self.layer_search_combo.removeItem(1)
def setBedToUniform(self): try: self.dlg.layerInZoneEdit.textChanged.disconnect() self.dlg.layerInZoneEdit.textChanged.connect(self.setBedLayerInZone) except: self.dlg.layerInZoneEdit.textChanged.connect(self.setBedLayerInZone) self.dlg.zoneBedSelector.clear() self.dlg.zoneBedSelector.addItem('1') self.dlg.bedLayerTree.clear() try: self.dlg.bedLayerTree.itemClicked.disconnect() except: pass self.dlg.bedLayerTree.clear() self.dlg.bedLayerTree.setColumnCount(2) self.dlg.bedLayerTree.setHeaderLabels(['Layers', 'Status']) DomainItem = QTreeWidgetItem() DomainItem.setText(0, 'Domain') self.dlg.bedLayerTree.addTopLevelItem(DomainItem) self.dlg.bedLayerTree.setColumnWidth(0, 150) try: layerNum = int(self.dlg.layerInZoneEdit.text()) except: layerNum = None if layerNum: for i in range(0, layerNum): layerItem = QTreeWidgetItem(DomainItem) layerItem.setText(0, 'Layer '+str(i+1)) self.dlg.bedLayerTree.itemClicked.connect(self.bedLayerPopUp)
def build_menu_item(action): """Return a QTreeWidgetItem with children for all the actions in the submenu.""" menuitem = QTreeWidgetItem() text = qutil.removeAccelerator(action.text()) menuitem.setText(0, _("Menu {name}").format(name=text)) add_actions(menuitem, action.menu().actions()) return menuitem
def addRecentAlgorithms(self, updating): showRecent = ProcessingConfig.getSetting( ProcessingConfig.SHOW_RECENT_ALGORITHMS) if showRecent: recent = ProcessingLog.getRecentAlgorithms() if len(recent) != 0: found = False if updating: recentItem = self.algorithmTree.topLevelItem(0) treeWidget = recentItem.treeWidget() treeWidget.takeTopLevelItem( treeWidget.indexOfTopLevelItem(recentItem)) recentItem = QTreeWidgetItem() recentItem.setText(0, self.tr('Recently used algorithms')) for algname in recent: alg = Processing.getAlgorithm(algname) if alg is not None: algItem = TreeAlgorithmItem(alg) recentItem.addChild(algItem) found = True if found: self.algorithmTree.insertTopLevelItem(0, recentItem) recentItem.setExpanded(True) self.algorithmTree.setWordWrap(True)
def addResults(self, results): tree = QTreeWidget() tree.setColumnCount(1) header = QString("Offset") tree.setHeaderLabel(header) tree.setAlternatingRowColors(True) self.connect(tree, SIGNAL("itemDoubleClicked(QTreeWidgetItem *, int)"), self.treeClicked) for res in results: # print hex(res) item = QTreeWidgetItem(tree) off = "0x" off += "%.2x" % res item.setText(0, str(off)) self.trees.append(tree) #Add pattern and offsets to tupple key = binascii.hexlify(self.search.search_th.pattern) self.search.searchedPatterns[key] = results if self.search.lastSearchType == 0: p = binascii.hexlify(self.search.search_th.pattern) elif self.search.lastSearchType == 1: p = self.search.search_th.pattern else: p = "u(" p += self.search.needle.text() p += ")" #Add Ascii hex pattern in searched list for syntaxHighliter self.insertTab(len(self.trees), tree, p)
class LoadThings(QUndoCommand): def __init__(self, widget, thing): super(LoadThings, self).__init__() self.widget = widget self.createdThing = thing self.item = QTreeWidgetItem() self.item.setText(0, thing.name) typeName = type(thing).__name__ for i in range(self.widget.ui.treeWidget.topLevelItemCount()): group = self.widget.ui.treeWidget.topLevelItem(i) if group.text(0) == typeName: self.group = group break else: # group not found self.group = QTreeWidgetItem() self.group.setText(0, typeName) def redo(self): if self.widget.ui.treeWidget.indexOfTopLevelItem(self.group) == -1: self.widget.ui.treeWidget.addTopLevelItem(self.group) self.group.addChild(self.item) self.group.setExpanded(True) self.widget.ui.treeWidget.setCurrentItem(self.item) def undo(self): self.group.takeChild(self.group.childCount()-1) if self.group.childCount() == 0: parentIndex = self.widget.ui.treeWidget.indexOfTopLevelItem(self.group) self.widget.ui.treeWidget.takeTopLevelItem(parentIndex)
def populate(self): """Puts the deleted/changed snippets in the tree.""" self.deletedItem.takeChildren() self.deletedItem.setExpanded(True) self.deletedItem.setCheckState(0, Qt.Unchecked) self.changedItem.takeChildren() self.changedItem.setExpanded(True) self.changedItem.setCheckState(0, Qt.Unchecked) builtins = list(builtin.builtin_snippets) builtins.sort(key=snippets.title) names = frozenset(snippets.names()) for name in builtins: if name in names: if snippets.isoriginal(name): continue parent = self.changedItem else: parent = self.deletedItem item = QTreeWidgetItem(parent) item.name = name item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setCheckState(0, Qt.Unchecked) item.setText(0, snippets.title(name)) self.deletedItem.setDisabled(self.deletedItem.childCount() == 0) self.changedItem.setDisabled(self.changedItem.childCount() == 0) self.checkOkButton()
def fill_fields(self): search_word = self.filterEdit.text() if search_word.strip() != '': search_str = stem_str(search_word) else: search_str = '' query = QSqlQuery(self.local_cn) LIMIT = 100 OFFSET = 0 query.prepare(show_termins_in_link_selector_query) query.bindValue(':search_str', search_str + '%') query.bindValue(':linked', 1) query.bindValue(':limit', LIMIT.__str__()) query.bindValue(':offset', OFFSET.__str__()) if query.exec_(): self.root.takeChildren() while query.next(): c = QTreeWidgetItem() c.setText(0, query.value(0)) # Заглавное слово c.setData(1, 0, query.value(1)) # uuid self.root.addChild(c) else: print(query.lastError().text()) print("not exec") self.treeWidget.scrollToTop()
def generate_tree_model(self, data_dict): """Generate a tree model for specified dictionary :param data_dict: A dictionary :type data_dict: dict :return: list of QTreeWidgetItem :rtype list: """ widget_items = [] font = QFont() font.setBold(True) for key in data_dict.keys(): entry = data_dict[key] key_item = QTreeWidgetItem() key_item.setText(0, str(key)) key_item.setFont(0, font) if isinstance(entry, dict): items = self.generate_tree_model(entry) key_item.addChildren(items) else: # value_item = QTreeWidgetItem() key_item.setText(1, str(entry)) key_item.setFlags(key_item.flags() | Qt.ItemIsEditable) # key_item.addChild(key_item) widget_items.append(key_item) return widget_items
def _walkCreate(koEntry, lvItem): item = QTreeWidgetItem(lvItem) id = "path:" + org_code + koEntry.title[:5] if koEntry.title[:5] in path_ids: p = kegg_pathways.get_entry(id) if p is None: # In case the genesets still have obsolete entries name = koEntry.title else: name = p.name genes, p_value, ref = self.pathways[id] item.setText(0, name) item.setText(1, "%.5f" % p_value) item.setText(2, "%i of %i" % (len(genes), len(self.genes))) item.setText(3, "%i of %i" % (ref, len(self.referenceGenes))) item.pathway_id = id if p is not None else None else: if id in allPathways: text = kegg_pathways.get_entry(id).name else: text = koEntry.title item.setText(0, text) if id in allPathways: item.pathway_id = id elif "path:map" + koEntry.title[:5] in allRefPathways: item.pathway_id = "path:map" + koEntry.title[:5] else: item.pathway_id = None for child in koEntry.entries: if child in allClasses: _walkCreate(child, item)
def __init__(self, featureDict, selectedFeatures=None, parent=None): QDialog.__init__(self, parent) self.featureDict = featureDict if selectedFeatures is None or len(selectedFeatures) == 0: selectedFeatures = defaultdict(list) self.selectedFeatures = selectedFeatures self.setWindowTitle("Object Features") ui_class, widget_class = uic.loadUiType(os.path.split(__file__)[0] + "/featureSelection.ui") self.ui = ui_class() self.ui.setupUi(self) self.ui.buttonBox.accepted.connect(self.accept) self.ui.buttonBox.rejected.connect(self.reject) self.ui.allButton.pressed.connect(self.handleAll) self.ui.noneButton.pressed.connect(self.handleNone) self.ui.treeWidget.setColumnCount(1) for pluginName, features in featureDict.iteritems(): parent = QTreeWidgetItem(self.ui.treeWidget) parent.setText(0, pluginName) parent.setExpanded(True) for name in sorted(features): item = QTreeWidgetItem(parent) item.setText(0, name) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) if pluginName in self.selectedFeatures: if name in self.selectedFeatures[pluginName]: item.setCheckState(0, Qt.Checked) else: item.setCheckState(0, Qt.Unchecked)
def fill_item(item, value): item.setExpanded(True) if type(value) is dict: for key, val in sorted(value.iteritems()): child = QTreeWidgetItem() child.setText(0, unicode(key)) item.addChild(child) fill_item(child, val) elif type(value) is list: for val in value: child = QTreeWidgetItem() item.addChild(child) if type(val) is dict: child.setText(0, '[dict]') fill_item(child, val) elif type(val) is list: child.setText(0, '[list]') fill_item(child, val) else: child.setText(0, unicode(val)) child.setExpanded(True) else: child = QTreeWidgetItem() child.setText(0, unicode(value)) item.addChild(child)
def __add_themen(self): self.ui.TREE_THEMEN.headerItem().setText(0, '') #TODO: resize column to contents #all of these don't work?? self.ui.TREE_THEMEN.header().resizeSection(0, 250) self.ui.TREE_THEMEN.header().setResizeMode(QHeaderView.ResizeToContents); self.ui.TREE_THEMEN.header().setStretchLastSection(True); themen = self.json_settings.themen() for thema_name, thema in themen.iteritems(): tree_thema = QTreeWidgetItem(self.ui.TREE_THEMEN) tree_thema.setText(0, thema_name) tree_thema.setData(0, Qt.UserRole, thema) tree_thema.setFlags(tree_thema.flags() | Qt.ItemIsUserCheckable) if thema_name == 'DKM': tree_thema.setCheckState(0, Qt.Checked) else: tree_thema.setCheckState(0, Qt.Unchecked) if not thema.subthemen is None: for subthema in thema.subthemen: if VRP_DEBUG is True: QgsMessageLog.logMessage(u'Subthema: {0}'.format(subthema.name), DLG_CAPTION) tree_subthema = QTreeWidgetItem() tree_subthema.setText(0, subthema.name) tree_subthema.setData(0, Qt.UserRole, subthema) tree_subthema.setFlags(tree_subthema.flags() | Qt.ItemIsUserCheckable) tree_subthema.setCheckState(0, Qt.Unchecked) tree_thema.addChild(tree_subthema)
def setBedLayerInZone(self): idx = self.dlg.zoneBedSelector.currentIndex() self.rockTypeCount() totalLayers = int(self.dlg.layerInZoneEdit.text()) currentRegion = self.dlg.bedLayerTree.topLevelItem(idx) currLayers = currentRegion.childCount() if currLayers == 0: for i in range(0, totalLayers): item = QTreeWidgetItem() item.setText(0, 'Layer'+str(i+1)) currentRegion.addChild(item) elif currLayers < totalLayers: for i in range(currLayers, totalLayers): item = QTreeWidgetItem() item.setText(0, 'Layer'+str(i+1)) currentRegion.addChild(item) elif currLayers > totalLayers: itemList = list() for j in range(totalLayers, currLayers): itemList.append(currentRegion.child(j)) for k in range(0, len(itemList)): currentRegion.removeChild(itemList[k]) else: pass
def fillTreeWidget(self): """ Заполняем tree widget записями, на основе разбиения на категории""" self._loadingData = True self._ui.twEntries.clear() for key in self._categories: self._categories[key] = sorted(self._categories[key], key=attrgetter('title')) item = DateTreeWidgetItem(self._ui.twEntries) font = item.font(0) font.setPointSize(11) font.setBold(True) item.setFont(0, font) if settings.showEntryCountInCategory(): item.setText(0, "{} ({})".format(key, len(self._categories[key]))) else: item.setText(0, key) item.setData(0, Qt.UserRole, self._keyForCategory[key]) for e in self._categories[key]: entryItem = QTreeWidgetItem(item) font = entryItem.font(0) font.setPointSize(12) entryItem.setCheckState(0, Qt.Checked if e.interesting else Qt.Unchecked) entryItem.setText(0, e.title) entryItem.setFont(0, font) entryItem.setData(0, Qt.UserRole, e.id) self._setToolTipForItem(e, entryItem) self._ui.twEntries.sortItems(0, Qt.AscendingOrder) self._ui.twEntries.expandAll() self._loadingData = False
def parseIPTree(self, fatherNode, ip): IPTree = QTreeWidgetItem(fatherNode) IPTree.setText(0, 'IP') IPTup = (('v', 'Version: %d' % ip.v), ('hl', 'Header Length: %d' % (ip.hl << 4)), ('tos', 'Differentiated Services: 0x%.2x' % ip.tos), ('len', 'Total Length: %d' % ip.len), ('id', 'Identification: 0x%.4x' % ip.id), ('flag', 'Flags: 0x%.2x' % (ip.off >> 13)), ('off', 'Fragment Offset: %d' % (ip.off & 0x1fff)), ('ttl', 'Time To Live: %d' % ip.ttl), ('p', 'Protocol: %d' % ip.p), ('sum', 'Header Checksum: 0x%.4x' % ip.sum), ('src', 'Source: %s' % NetFormat.ntoa_ip(ip.src)), ('dst', 'Destination: %s' % NetFormat.ntoa_ip(ip.dst)) ) self.parseDetail(IPTree, IPTup) self.TreeList.append(IPTree) if ip.p == dpkt.ip.IP_PROTO_TCP: self.parseTCPTree(fatherNode, ip.data) elif ip.p == dpkt.ip.IP_PROTO_UDP: self.parseUDPTree(fatherNode, ip.data) elif ip.p == dpkt.ip.IP_PROTO_ICMP: self.parseICMPTree(fatherNode, ip.data) elif ip.p == dpkt.ip.IP_PROTO_IGMP: self.parseIGMPTree(fatherNode, ip.data) else: self.parseUnknownTree(fatherNode, ip.data)
def addResults(self, results): tree = QTreeWidget() tree.setColumnCount(1) header = QString("Offset") tree.setHeaderLabel(header) tree.setAlternatingRowColors(True) self.connect(tree, SIGNAL("itemDoubleClicked(QTreeWidgetItem *, int)"), self.treeClicked) for res in results: # print hex(res) item = QTreeWidgetItem(tree) off = "0x" off += "%.2x" % res item.setText(0, str(off)) self.trees.append(tree) #Add pattern and offsets to tupple key = binascii.hexlify(self.search.search_th.pattern) # print "key: ", key self.search.searchedPatterns[key] = results if self.search.lastSearchType == 0: p = binascii.hexlify(self.search.search_th.pattern) else: p = self.search.search_th.pattern #Add Ascii hex pattern in searched list for syntaxHighliter self.insertTab(len(self.trees), tree, p)
def setBedToZone(self): try: self.dlg.layerInZoneEdit.textChanged.disconnect() self.dlg.bedLayerTree.itemClicked.disconnect() self.dlg.zoneBedSelector.clear() except: pass try: physRef = self.physRef except: physRef = None if physRef: self.dlg.bedLayerTree.clear() self.dlg.bedLayerTree.setColumnCount(2) self.dlg.bedLayerTree.setHeaderLabels(['Layers', 'Status']) for i in range(0, len(physRef)): item = QTreeWidgetItem() item.setText(0, str(i+1) + ". " + physRef[i+1]) self.dlg.bedLayerTree.addTopLevelItem(item) self.dlg.zoneBedSelector.addItem(str(i+1)) self.dlg.bedLayerTree.setColumnWidth(0, 150) self.dlg.layerInZoneEdit.textChanged.connect(self.setBedLayerInZone) self.dlg.bedLayerTree.itemClicked.connect(self.bedLayerPopUp) else: onCritical(107)
def addNode(self, parent, text="", data=""): node = QTreeWidgetItem(parent) node.setText(0, text) node.setCheckState(0, Qt.Unchecked) node.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsSelectable) node.setData(0, Qt.UserRole, data) return node
def fillAttributes(self, node): vmap = node.attributes() if vmap: if len(vmap) > 0: itemExtendedAttr = QTreeWidgetItem(self) itemExtendedAttr.setText(0, self.attributeText) self.fillMap(itemExtendedAttr, vmap) self.expandItem(itemExtendedAttr)
def insertClusterItem(self, tree, text): """ Creates an item for the tree widget for a specific parent item and a specific text (cluster name) """ parent = tree.invisibleRootItem() item = QTreeWidgetItem(parent) item.setExpanded(True) item.setText(0,text)
def populateToolTree(self): toolTree = QTreeWidgetItem(self.configTreeWidget) toolTree.setText(0, "Tools") for tool in self.toolDict.values(): if not tool.name == '## No Tool ##': logger.log('Adding tool: ' + tool.name) actualTool = QTreeWidgetItem(toolTree) actualTool.setText(0, tool.name)
def populatePrinterTree(self): printerTree = QTreeWidgetItem(self.configTreeWidget) printerTree.setText(0, "Printers") for printer in self.printerDict.values(): if not printer.name == '## No Printer ##': logger.log('Adding printer: ' + printer.name) actualPrinter = QTreeWidgetItem(printerTree) actualPrinter.setText(0, printer.name)
def __importCSV(self, csvFile): self.twMeasurements.clear() self.__sourcecsv= InputCSVH5(csvFile, ',') self.__sourcecsv.load_csvHeader() rootItem= QTreeWidgetItem(self.twMeasurements, [csvFile]) for value in self.__sourcecsv.measurements: childItem = QTreeWidgetItem() childItem.setText(0, value) rootItem.addChild(childItem)
def add_item_to_tree(self, folder, tree, item_type=None, parent=None): if item_type is None: item = QTreeWidgetItem() item.setText(0, self.tr(' LOADING: "%1"').arg(folder)) else: item = item_type(parent, self.tr(' LOADING: "%1"').arg(folder), folder) tree.addTopLevelItem(item) tree.setItemWidget(item, 0, self) return item
def fillCompatModule(self, node): l = node.compatibleModules() if len(l) > 0: itemCompat = QTreeWidgetItem(self) itemCompat.setText(0, self.relevantText) buff = "" for i in l: buff += str(i) + " " itemCompat.setText(1, buff)
def populate(self): groups = {} count = 0 provider = Processing.algs[self.providerName] algs = provider.values() name = 'ACTIVATE_' + self.providerName.upper().replace(' ', '_') active = ProcessingConfig.getSetting(name) # Add algorithms for alg in algs: if not alg.showInToolbox: continue if alg.group in groups: groupItem = groups[alg.group] else: groupItem = QTreeWidgetItem() name = alg.i18n_group or alg.group if not active: groupItem.setForeground(0, Qt.darkGray) groupItem.setText(0, name) groupItem.setToolTip(0, name) groups[alg.group] = groupItem algItem = TreeAlgorithmItem(alg) if not active: algItem.setForeground(0, Qt.darkGray) groupItem.addChild(algItem) count += 1 actions = Processing.actions[self.providerName] for action in actions: if action.group in groups: groupItem = groups[action.group] else: groupItem = QTreeWidgetItem() groupItem.setText(0, action.group) groups[action.group] = groupItem algItem = TreeActionItem(action) groupItem.addChild(algItem) text = self.provider.getDescription() if not active: def activateProvider(): self.toolbox.activateProvider(self.providerName) label = QLabel(text + " <a href='%s'>Activate</a>") label.setStyleSheet("QLabel {background-color: white; color: grey;}") label.linkActivated.connect(activateProvider) self.tree.setItemWidget(self, 0, label) else: text += QCoreApplication.translate("TreeProviderItem", " [{0} geoalgorithms]").format(count) self.setText(0, text) self.setToolTip(0, self.text(0)) for groupItem in groups.values(): self.addChild(groupItem)
def create_entities_node(self, root_node, entities): children = [] title_node = QTreeWidgetItem(root_node, 0) title_node.setText(0, QApplication.translate("EntityDependencies", "Entities")) title_node.setFont(0, self.title_font()) for entity in entities: node = QTreeWidgetItem(title_node, 0) node.setText(0, entity) children.append(node) return children
def groupYaz(self): for option in DOptions: if hasattr(option, "getOption"): #self.gridLayout_3.addWidget(option.getOption(), 0, 0, 1, 1) item = QTreeWidgetItem(self.dialog) a = option.getOption() if hasattr(a, "name"): item.setText(0, a.name) else: item.setText(0, "F**k")
def create_views_node(self, root_node, views): children = [] title_node = QTreeWidgetItem(root_node, 0) title_node.setText(0, QApplication.translate("EntityDependencies", "Views")) title_node.setFont(0, self.title_font()) for view in views: node = QTreeWidgetItem(title_node, 0) node.setText(0, view) children.append(node) return children
def add_item_to_tree(self, folder, tree, item_type=None, parent=None): if item_type is None: item = QTreeWidgetItem() item.setText(0, self.tr(' LOADING: "%s"' % folder)) else: item = item_type(parent, self.tr(' LOADING: "%s"' % folder), folder) tree.addTopLevelItem(item) tree.setItemWidget(item, 0, self) return item
def fill_hash_treewidget(self, passed_list): self.treew_Bestanden.clear() for row in reversed(passed_list): row_number = 0 item = QTreeWidgetItem() while row_number < 8: item.setText(row_number, unicode(row[row_number])) self.treew_Bestanden.insertTopLevelItem(row_number, item) row_number += 1 QtGui.qApp.processEvents()
def setBedToDistri(self): try: self.dlg.bedLayerTree.itemClicked.disconnect() self.dlg.zoneBedSelector.clear() except: pass item = QTreeWidgetItem() item.setText(0, 'File Input') self.dlg.bedLayerTree.addTopLevelItem(item) self.dlg.bedLayerTree.itemClicked.connect(self.inputSelector)
def parseICMPv6Tree(self, fatherNode, icmpv6): ICMPv6Tree = QTreeWidgetItem(fatherNode) ICMPv6Tree.setText(0, 'ICMPv6') ICMPv6Tup = (('type', 'Type: %d' % icmpv6.type), ('code', 'Code: %d' % icmpv6.code), ('sum', 'Checksum: 0x%.4x' % icmpv6.sum) ) self.parseDetail(ICMPv6Tree, ICMPv6Tup) self.TreeList.append(ICMPv6Tree)
def create_views_node(self, root_node, views): children = [] title_node = QTreeWidgetItem(root_node, 0) title_node.setText( 0, QApplication.translate("EntityDependencies", "Views")) title_node.setFont(0, self.title_font()) for view in views: node = QTreeWidgetItem(title_node, 0) node.setText(0, view) children.append(node) return children
def create_entities_node(self, root_node, entities): children = [] title_node = QTreeWidgetItem(root_node, 0) title_node.setText( 0, QApplication.translate("EntityDependencies", "Entities")) title_node.setFont(0, self.title_font()) for entity in entities: node = QTreeWidgetItem(title_node, 0) node.setText(0, entity) children.append(node) return children
def parseIGMPTree(self, fatherNode, igmp): IGMPTree = QTreeWidgetItem(fatherNode) IGMPTree.setText(0, 'IGMP') IGMPTup = (('type', 'Type: 0x%.2x' % igmp.type), ('maxresp', 'Max Resp Code: %d' % igmp.maxresp), ('sum', 'Checksum: 0x%.4x' % igmp.sum), ('group', 'Group Address: %d' % igmp.group) ) self.parseDetail(IGMPTree, IGMPTup) self.TreeList.append(IGMPTree)
def build_tree_widget_item(parent, name, is_checkable=True): child = QTreeWidgetItem(parent) if is_checkable: child.setFlags(child.flags() | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsTristate) child.setCheckState(0, QtCore.Qt.Unchecked) else: child.setFlags(QtCore.Qt.ItemIsEnabled) child.setText(0, name) return child
def recusive_add_group(self, parentTreeWidgetItem, pwGroup): treeWidgetItem = QTreeWidgetItem(parentTreeWidgetItem) treeWidgetItem.setText(0, pwGroup.Name) treeWidgetItem.setData(1, Qt.UserRole, pwGroup) for childGroup in pwGroup.Groups: self.recusive_add_group(treeWidgetItem, childGroup) treeWidgetItem.setExpanded(True) return treeWidgetItem
def fillAttributes(self, node): try: vmap = node.attributes() if vmap: if len(vmap) > 0: itemExtendedAttr = QTreeWidgetItem(self) itemExtendedAttr.setText(0, self.attributeText) self.fillMap(itemExtendedAttr, vmap) self.expandItem(itemExtendedAttr) except: pass
def __setup_ui(self): #self.setText(0, self.__con_name) self.setIcon(0, QIcon(ICON_IDR + 'database.png')) self.__db_item = QTreeWidgetItem(self) self.__db_item.setIcon(0, QIcon(ICON_IDR + 'dir_close.png')) self.__db_item.setText(0, self.__schema_name) for table in self.__table_names: table_item = QTreeWidgetItem(self.__db_item) table_item.setIcon(0, QIcon(ICON_IDR + 'table.png')) table_item.setText(0, table)
def show_termins_in_list(self, page): self.currentPage = page # фильтрация списка терминов search_word = self.searchLineEdit.text() if search_word.strip() != '': search_str = search_word else: search_str = '' # показ уже обработанных терминов if self.showLinkedCheck.isChecked(): show_linked = 1 else: show_linked = 0 query = QSqlQuery(self.local_cn) LIMIT = int(self.terminsPerPageComboBos.currentText()) OFFSET = (page - 1) * LIMIT query.prepare(show_termins_in_list_query) query.bindValue(':search_str', search_str + '%') query.bindValue(':linked', show_linked) query.bindValue(':limit', LIMIT.__str__()) query.bindValue(':offset', OFFSET.__str__()) if query.exec_(): self.root.takeChildren() i = 1 f = QFont() f.setBold(True) while query.next(): c = QTreeWidgetItem() c.setText(0, query.value(0)) # Заглавное слово c.setData(1, 0, query.value(1)) # uuid c.setData(2, 0, i) # номерок if query.value(2) == 1: c.setFont(0, f) self.root.addChild(c) i += 1 pages = 1 query.prepare(show_termins_in_list_count_query) query.bindValue(':search_str', search_str + '%') query.bindValue(':linked', show_linked) if query.exec_() and query.next(): try: pages = math.ceil(query.value(0) / LIMIT) except: pages = 1 self.draw_paginator(pages, page) else: print(query.lastError().text()) print("not exec") self.terminsTreeWidget.scrollToTop()