LINUX.ORG.RU

QTreeWidgetItem: как disable'ить только один узел?


0

0

Qt4.3. Есть иерархическое дерево построенное с помощью QTreeWidget + QTreeWidgetItem. Нужно в этом дереве выключить (сделать серым и выключить кликабельность) один из узлов (не трогая его детей). Как этого достичь?

Делаю примерно так:

i = obtain_required_item(myTree); // myTree is QTreeWidget*

i->setFlags(i->flags() & (~Qt::ItemIsEnabled | ~Qt::ItemIsSelectable));

после чего получается, что нетолько узел i стал серым, но и все его дети, хотя только он перестал быть кликабельным.

Что я делаю не так? Почему enable/disable распространяется на детей узла и как этого избежать? Спасибо.

anonymous

Ну вообще это допольно логично... я бы делал именно так... раз у нас иерархическая структура, то често теоритически дети как бы должны зависеть от предка... тоесть нету предка (неактивен) -> все дети тоже неактивны... может ты просто неподходящую "структуру" выбрал?

Cy6erBr4in ★★★
()
Ответ на: комментарий от Cy6erBr4in

Структура в самый раз. Отключение parent'ов нужно для избежания цикличности результатов в некотором контексте.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.