Как проверить, находится ли дважды нажатый элемент в нижней части QTreeWidget - PullRequest
0 голосов
/ 10 марта 2020

У меня есть QTreeWidget со следующей формой:

Root
- Item1
-- Sub11
--- Sub111
-- Sub12
--- Sub121
...

При двойном щелчке по любому элементу из QTreeWidget выбор расширяется по умолчанию (или сворачивается, если он уже был расширен). Я создал простую функцию tree_get_details (self, item, column) для печати элемента и столбца элемента с двойным щелчком и связал его с itemDoubleClicked. Это работает хорошо до сих пор. Однако, как я могу сделать эту функцию доступной только в нижнем слое дерева (ie для строк subXXX). Следовательно, для Root, Item1, Item2, Sub11, Sub12 только поведение по умолчанию для события двойного щелчка и для Sub111, Sub121, печатающего элемента и столбца?

Каким-то образом мне нужно проверить в своей функции tree_get_details, если " item "переданный в аргументе" находится на нижнем уровне Я знаю метод topLevelItem, но не могу найти соответствующий нижний (если он существует ...). Мое дерево имеет 4-х уровневую иерархию.

1 Ответ

0 голосов
/ 10 марта 2020

Это зависит от того, что именно вы имеете в виду под «нижним элементом». Обычное имя для «нижнего элемента» в дереве: «конечный элемент» . Он определяется как предмет без детей. Это то, что вы можете проверить с помощью метода QTreeWidgetItem::childCount (это лист, если и только если он возвращает 0).

Если по какой-то причине вы хотите обнаружить элементы в третий подуровень, вы можете посчитать количество родительских элементов рекурсивно. Это немного сложнее и, вероятно, не то, что вы хотите.

...