PyQt QTreeWidget節點過濾操作


QTreeWidget節點過濾操作

QTreeWidget遍歷所有節點

def filter(treeWidget):
    cursor = QTreeWidgetItemIterator(treeWidget)
    while cursor.value():
        print(cursor.value())
        cursor = cursor.__iadd__(1)

QTreeWidget過濾出符合條件的根節點

def filter(w):
    # 獲取所有根節點
    all_items = w.findItems("", Qt.MatchStartsWith)
    # 獲取符合條件的根節點
    match_items = w.findItems(sb.lineEdit.text(), Qt.MatchStartsWith)
    # 隱藏所有根節點
    for item in all_items:
        item.setHidden(True)
    # 顯示符合條件的根節點
    for item in match_items:
        item.setHidden(False)

QTreeWidget過濾出符合條件的所有節點

def filter(treeWidget,text):
    """以text開頭作為過濾條件示例"""
    cursor = QTreeWidgetItemIterator(treeWidget)
    while cursor.value():
        item = cursor.value()
        if item.text(0).startswith(text):
            item.setHidden(False)
            # 需要讓父節點也顯示,不然子節點顯示不出來
            try:
                item.parent().setHidden(False)
            except Exception:
                pass
        else:
            item.setHidden(True)

        cursor = cursor.__iadd__(1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM