как получить выбранный дочерний индекс в QTreeWidget - PullRequest
0 голосов
/ 29 апреля 2020

Как я могу получить индекс выбранного дочернего элемента в такой иерархической структуре? Выбрав элемент с именем «child A», получите его индекс.

if __name__ == '__main__':
    app = 0
    if QApplication.instance():
        app = QApplication.instance()
    else:
        app = QApplication(sys.argv)

    l1 = QTreeWidgetItem(["String A"])
    l2 = QTreeWidgetItem(["String AA"])
    l1_child = QTreeWidgetItem(["Child A"])
    l1.addChild(l1_child)
    l2_child = QTreeWidgetItem(["Child AA"])
    l2.addChild(l2_child)

    w = QWidget()
    w.resize(510, 210)

    tw = QTreeWidget(w)
    tw.resize(500, 200)
    tw.setColumnCount(1)
    tw.setHeaderHidden(True)
    tw.addTopLevelItem(l1)
    tw.addTopLevelItem(l2)
    w.show()
    sys.exit(app.exec_())here

1 Ответ

0 голосов
/ 29 апреля 2020

Ваш вопрос кажется запутанным, но я собираюсь проанализировать его буквально.

Нет разницы между выбранным элементом, который является дочерним или нет другого элемента, если вы хотите получить выбранный элемент, то у вас есть следующие опции:

# ...
w.show()

def on_itemSelectionChanged():
    items = tw.selectedItems()
    for it in items:
        print(it.text(0))

tw.itemSelectionChanged.connect(on_itemSelectionChanged)

sys.exit(app.exec_())
# ...
w.show()

def on_selectionChanged():
    indexes = tw.selectedIndexes()
    for index in indexes:
        print(index.data())

tw.selectionModel().selectionChanged.connect(on_selectionChanged)

sys.exit(app.exec_())
...