예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
 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        
예제 #4
0
 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)
예제 #5
0
    def validate(self):
        if self.objectDict is None:
            self.objectDict = {}
        templateName = self.txtPathTemplateName.text()
        # template name
        if self.helper.NoTextValueError(templateName,
                                        "Must enter a Path Template Name"):
            self.txtPathTemplateName.setFocus()
            return False
        # find duplicate cypher variables
        varList = []
        # iterate through the treeview
        tvPathIterator = QTreeWidgetItemIterator(
            self.tvPath, flags=QTreeWidgetItemIterator.All)
        returnCount = 0
        while tvPathIterator:
            if not tvPathIterator.value() is None:
                queryPathNodeItem = tvPathIterator.value()
                thisQueryPathNode = queryPathNodeItem.data(0, Qt.UserRole)
                if thisQueryPathNode.type in ["Node", "Relationship"]:
                    returnCount = returnCount + thisQueryPathNode.numReturnProps(
                    )
                    if returnCount < 1:
                        self.helper.displayErrMsg(
                            thisQueryPathNode.templateName,
                            "Must return at least one property.")
                        return False
                    if self.helper.NoTextValueError(
                            thisQueryPathNode.templateName,
                            "Must supply a template name."):
                        return False
                    if self.helper.NoTextValueError(
                            thisQueryPathNode.cypherVar,
                            "Must supply a cypher variable for {}.".format(
                                thisQueryPathNode.templateName)):
                        return False
                    if thisQueryPathNode.cypherVar in varList:
                        self.helper.displayErrMsg(
                            "Validate Path",
                            "Error - duplicate cypher variable {} defined in template: {} "
                            .format(thisQueryPathNode.cypherVar,
                                    thisQueryPathNode.templateName))
                        return False
                    if thisQueryPathNode.templateName == "No Template Selected" and thisQueryPathNode.blankTemplate == False:
                        self.helper.displayErrMsg(
                            "Validate Path",
                            "Error - must select a template or set blank template to True "
                        )
                        return False

                    varList.append(thisQueryPathNode.cypherVar)
                tvPathIterator.__iadd__(1)
            else:
                break
        # passed all edits so return True
        return True
예제 #6
0
파일: zdcview.py 프로젝트: syjacksonwu/py
    def tree_pr_checked(self, tree, txt_item):
        print(tree)
        iterator = QTreeWidgetItemIterator(tree)
        while iterator.value():
            item = iterator.value()
            if txt_item == item.text(0) and item.checkState(0) == False:
                return False
            iterator.__iadd__(1)

        return True
예제 #7
0
 def select_all(self):
     currentTopLevelItemIndex = 0
     it = QTreeWidgetItemIterator(self.productTree)
     while it.value():
         if it.value() is self.productTree.topLevelItem(currentTopLevelItemIndex):
             currentTopLevelItemIndex += 1
             if it.value().checkState(0) == Qt.Checked:
                 for _ in range(it.value().childCount()):
                     it = it.__iadd__(1)
                     it.value().setCheckState(0, Qt.Checked)
         it = it.__iadd__(1)
예제 #8
0
 def get_data(self):
     iter = QTreeWidgetItemIterator(self)
     while iter.value():
         item = iter.value()
         if hasattr(item, 'x') and hasattr(item, 'k'):
             if item.checkState(0) == Qt.Checked:
                 self.tree_data[item.k][item.x] = True
             else:
                 self.tree_data[item.k][item.x] = False
         iter.__iadd__(1)
     return self.tree_data
예제 #9
0
파일: zdcview.py 프로젝트: syjacksonwu/py
    def on_QCheckBox_PR_Change(self, state):
        iterator = QTreeWidgetItemIterator(self.botleft)

        while iterator.value():
            item = iterator.value()
            iterator.__iadd__(1)

            if state == Qt.Checked:
                item.setCheckState(0, Qt.Checked)
            else:
                item.setCheckState(0, Qt.Unchecked)
예제 #10
0
파일: zdcview.py 프로젝트: syjacksonwu/py
    def dump_prnr(self):
        '''从PR号树中,提取PRNR订单'''

        str_prnr_order = ''
        iterator = QTreeWidgetItemIterator(self.botleft)
        while iterator.value():
            item = iterator.value()
            if item.checkState(0) and (item.childCount() == 0):
                str_prnr_order += item.text(0) + ' '
            iterator.__iadd__(1)

        #去掉首尾空格或者','
        str_prnr_order = str_prnr_order.strip(' ')
        str_prnr_order = str_prnr_order.strip(',')
        self.textEdit.setPlainText(str_prnr_order)
예제 #11
0
 def getMaxTreeOrder(self, ):
     '''scan the tree and find the max itemNum attribute.  This is used to increment and create the next highest item number'''
     max = 0
     # iterate through the treeview
     tvPathIterator = QTreeWidgetItemIterator(self.tvOutline, flags = QTreeWidgetItemIterator.All)
     while tvPathIterator:
         if not tvPathIterator.value() is None:
             formTVItem = tvPathIterator.value()
             formItem = formTVItem.data(0, Qt.UserRole)
             # save the value for order if it's greater
             if formItem.itemDict["idNum"] > max:
                 max = formItem.itemDict["idNum"]
             tvPathIterator.__iadd__(1)
         else:
             break       
     return max
예제 #12
0
 def getMaxTreeOrder(self, ):
     '''scan the tree and find the max order attribute.  This is used to increment and create the next highest order number'''
     max = 0
     # 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 > max:
                 max = order
             tvPathIterator.__iadd__(1)
         else:
             break
     return max
예제 #13
0
 def okClicked(self):
     # 遍历树控件节点
     cursor = QTreeWidgetItemIterator(self.treeWidget)
     lst = []
     while cursor.value():
         item = cursor.value()
         if item.checkState(1) == Qt.Checked:
             lst.append(item.key)
         cursor = cursor.__iadd__(1)
     self.selectItemChanged.emit(lst)
     self.Dialog.close()
예제 #14
0
 def treelist_genseqbutton_click(self):
     """Generate Sequence."""
     item = QTreeWidgetItemIterator(
         self.maintabwidget.tab_classify.treelist)
     MRHPROJECT.refseq = []
     while item.value():
         if item.value().text(2):
             rid = int(item.value().text(2))
             MRHPROJECT.refseq.append(rid)
         item = item.__iadd__(1)
     self.treelist_show()
예제 #15
0
 def apply(self):
     '''save the object dictionary'''
     formItemList = []
     # 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
             formDefItem = tvWidget.data(0, Qt.UserRole)
             if formDefItem.itemDict["type"] == "Form":
                 self.objectDict["name"] = formDefItem.itemDict["itemName"]
                 self.objectDict["description"] = formDefItem.itemDict["description"]
             formItemList.append(formDefItem.dict())
             tvOutlineIterator.__iadd__(1)
         else:
             break
         
     self.objectDict["formOutline"] = formItemList
     self.designModel.setModelDirty()     
예제 #16
0
    def apply(self, ):
        '''save the object dictionary'''
        self.objectDict["name"] = self.txtPathTemplateName.text()
        self.objectDict["description"] = self.editDescription.toPlainText()
        nodeList = []
        # iterate through the treeview
        tvPathIterator = QTreeWidgetItemIterator(
            self.tvPath, flags=QTreeWidgetItemIterator.All)
        while tvPathIterator:
            if not tvPathIterator.value() is None:
                #                print("save node {}".format(tvPathIterator.value().text(0)))
                queryPathNodeItem = tvPathIterator.value()
                queryPathNodeDict = queryPathNodeItem.data(0,
                                                           Qt.UserRole).dict()
                nodeList.append(queryPathNodeDict)
                tvPathIterator.__iadd__(1)
            else:
                break

        self.objectDict["queryPath"] = nodeList
        self.designModel.setModelDirty()
예제 #17
0
파일: zdcview.py 프로젝트: syjacksonwu/py
    def inject_prnr(self):
        '''向PR号树中,注入PRNR订单'''

        str_prnr_order = self.textEdit.toPlainText()
        str_prnr_order = str_prnr_order.strip(' ')
        str_prnr_order = str_prnr_order.strip(',')

        lst_prnr_oder = []

        if len(str_prnr_order):
            str_prnr_order = str_prnr_order.upper()

            if ', ' in str_prnr_order:
                lst_prnr_oder = str_prnr_order.split(', ')
            elif ',' in str_prnr_order:
                lst_prnr_oder = str_prnr_order.split(',')
            elif ' ' in str_prnr_order:
                lst_prnr_oder = str_prnr_order.split(' ')
            elif len(str_prnr_order) == 3:  #只有一个PR号
                lst_prnr_oder.append(str_prnr_order)

        if len(lst_prnr_oder):
            # 清除 PR 树中已经选中的所有项目
            iterator = QTreeWidgetItemIterator(self.botleft)
            while iterator.value():
                item = iterator.value()
                item.setCheckState(0, Qt.Unchecked)
                iterator.__iadd__(1)

            # 安装PR订单重新勾选PR树
            for pr in lst_prnr_oder:
                iterator = QTreeWidgetItemIterator(self.botleft)
                while iterator.value():
                    item = iterator.value()
                    if (item.text(0) == pr) and (item.childCount() == 0):
                        item.setCheckState(0, Qt.Checked)
                        break
                    iterator.__iadd__(1)
예제 #18
0
    def save(self, ):
        #        print("save path {}".format(self.tabName))
        nodeList = []
        # iterate through the treeview
        tvPathIterator = QTreeWidgetItemIterator(
            self.tvPath, flags=QTreeWidgetItemIterator.All)
        while tvPathIterator:
            if not tvPathIterator.value() is None:
                #                print("save node {}".format(tvPathIterator.value().text(0)))
                queryPathNodeItem = tvPathIterator.value()
                queryPathNodeDict = queryPathNodeItem.data(0,
                                                           Qt.UserRole).dict()
                nodeList.append(queryPathNodeDict)
                # if its the root node then save the description.
                if queryPathNodeDict["type"] == "Path Template":
                    self.pathTemplateDict["description"] = queryPathNodeDict[
                        "description"]
                tvPathIterator.__iadd__(1)
            else:
                break

        self.pathTemplateDict["queryPath"] = nodeList
        self.model.setModelDirty()
예제 #19
0
 def filter(self, text):
     """以text开头作为过滤条件示例"""
     cursor = QTreeWidgetItemIterator(self)
     while cursor.value():
         item = cursor.value()
         if item.text(0).startswith(text):
             item.setHidden(False)
             # 需要让父节点也显示,不然子节点显示不出来
             try:
                 item.parent().setHidden(False)
             except Exception:
                 traceback.print_exc()
         else:
             item.setHidden(True)
         cursor = cursor.__iadd__(1)
예제 #20
0
 def _export_get_tree(self):
     reftree = []  # groupname, tag, rid (tag 0 item 1 group 2 subgroup)
     item = QTreeWidgetItemIterator(
         self.maintabwidget.tab_classify.treelist)
     while item.value():
         groupname = item.value().text(0)
         if groupname:
             if item.value().parent():
                 reftree.append([groupname, 2, -1])
             else:
                 reftree.append([groupname, 1, -1])
         else:
             rid = item.value().text(2)
             reftree.append([groupname, 0, rid])
         item = item.__iadd__(1)
     return reftree
예제 #21
0
    def remove_data(self):
        conn = sqlite.connect('TBTracker_DB/TBTracker.db')
        c = conn.cursor()

        currentTopLevelItemIndex = 0
        it = QTreeWidgetItemIterator(self.productTree)
        while it.value():
            if it.value() is self.productTree.topLevelItem(currentTopLevelItemIndex):
                currentTopLevelItemIndex += 1
            else:
                if it.value().checkState(0) == Qt.Checked:
                    c.execute('delete from product where ProductName="{}" and ShopName="{}"'.format(
                        it.value().parent().text(0),
                        it.value().text(0)))
                    conn.commit()
            it = it.__iadd__(1)
        c.close()
        
        self.show_database()
예제 #22
0
    def export_data(self):
        mainDirectory = check_os()
        currentFileDialog = SaveFileDialog()
        fileName, filetype = currentFileDialog.save_file(self, caption="手动保存数据", directory=mainDirectory, filter="Excel Files (*.xlsx)")

        conn = sqlite.connect('TBTracker_DB/TBTracker.db')
        c = conn.cursor()

        currentTopLevelItemIndex = 0
        exportDataList = []
        it = QTreeWidgetItemIterator(self.productTree)
        while it.value():
            if it.value() is self.productTree.topLevelItem(currentTopLevelItemIndex):
                currentTopLevelItemIndex += 1
            else:
                if it.value().checkState(0) == Qt.Checked:
                    c.execute('select * from product where ProductName="{}" and ShopName="{}"'.format(
                        it.value().parent().text(0),
                        it.value().text(0)))
                    queries = c.fetchall()
                    exportDataList += queries
            it = it.__iadd__(1)
        c.close()
        
        excel = xlwt.Workbook()
        sheet = excel.add_sheet('商品数据', cell_overwrite_ok=True)
        sheet.write(0, 0, "商品标识")
        sheet.write(0, 1, "URL")
        sheet.write(0, 2, "标题")
        sheet.write(0, 3, "店铺名")
        sheet.write(0, 4, "价格")
        sheet.write(0, 5, "淘宝价")
        sheet.write(0, 6, "上次更新时间")
        for i, data in enumerate(exportDataList):
            sheet.write(i + 1, 0, data[0])
            sheet.write(i + 1, 1, data[1])
            sheet.write(i + 1, 2, data[2])
            sheet.write(i + 1, 3, data[3])
            sheet.write(i + 1, 4, data[4])
            sheet.write(i + 1, 5, data[5])
            sheet.write(i + 1, 6, data[6])
        excel.save("{}.xlsx".format(fileName))
예제 #23
0
    def on_push_button_get_clicked(self):
        self.list_make_all = []
        self.length_less_list = []
        self.list_make = []
        self.half_cut_list = []

        item = QTreeWidgetItemIterator(self.ui.tree_widget)
        while item.value():
            tmp = {}
            if item.value().checkState(0) == Qt.Checked:
                if item.value().childCount() == 0:
                    tmp = {
                        'AutoNo': item.value().text(0),
                        'Sort Id': item.value().text(1),
                        'Item': item.value().text(2),
                        'Fa Qty': item.value().text(3),
                        'Prd Width': item.value().text(4),
                        'Unit Length': item.value().text(5),
                    }
                    # pprint(tmp)
                    # print(item.value().childCount())
            if tmp:
                self.list_make_all.append(tmp)
            item = item.__iadd__(1)
        if self.list_make_all:
            for item in self.list_make_all:
                if int(item['Unit Length']) < self.length_limit:
                    self.length_less_list.append(item)
            list_make_auto_no = list(set(x['AutoNo'] for x in self.list_make_all).difference(
                set(x['AutoNo'] for x in self.length_less_list)))
            for item in self.list_make_all:
                if item['AutoNo'] in list_make_auto_no:
                    self.list_make.append(item)

            print(self.list_make)
            print(self.length_less_list)

            QMessageBox.information(self, '获取信息', '已经获取所选数据,请及时处理!', QMessageBox.Ok)
            # self.save_to_csv()
        else:
            QMessageBox.warning(self, '获取信息', '你没有选择任何内容!', QMessageBox.Ok)
예제 #24
0
파일: User.py 프로젝트: golden7602/zion
 def saveRight(self, index2):
     uid = self.getCurrentUID(index2)
     tr = self.ui.treeWidget
     index = self.mod.createIndex(index2.row(), 0)
     uid = self.mod.data(index, Qt.EditRole)
     cursor = QTreeWidgetItemIterator(tr)
     sql = """UPDATE sysuserright set fHasRight={}
             where fUserID={} and fRightID={}"""
     lst = []
     while cursor.value():
         item = cursor.value()
         if item.dirty:
             st = 1 if item.checkState(1) == Qt.Checked else 0
             lst.append(sql.format(st, uid, item.jpData['fNMID']))
         cursor = cursor.__iadd__(1)
     if lst:
         if QMessageBox.question(self, '提示', "用户权限被修改,是否保存?",
                                 (QMessageBox.Yes | QMessageBox.No),
                                 QMessageBox.Yes) == QMessageBox.Yes:
             return JPDb().executeTransaction(lst)
         else:
             return True
     else:
         return True
예제 #25
0
    def search_node(self):
        """
        根据任务名称,查找节点
        :return:
        """
        try:
            # 先加载所有的,在filter
            self.widget.task.load_data()
            text = self.widget.search_text.text().strip()
            # 遍历树
            item = QTreeWidgetItemIterator(self.widget.tree)
            #该类的value()即为QTreeWidgetItem
            while item.value():
                if item.value().text(7) == 'task':
                    name = item.value().text(0)
                    if name.count(text) > 0:
                        item.value().setHidden(False)
                    else:
                        item.value().setHidden(True)

                item = item.__iadd__(1) #游标加1,继续迭代

        except Exception as a:
            print(a)
예제 #26
0
def show_detail_item(item):
    iterator = QTreeWidgetItemIterator(item)
    while iterator.value() is not None:
        iterator.value().setHidden(False)
        iterator.__iadd__(1)