【发布时间】:2018-09-05 01:12:56
【问题描述】:
我有一个QTreeWidget,我希望某些行不可选择,这可以通过QTreeWidgetItem::setFlags(treeWidgetItem->flags() & ~Qt::ItemIsSelectable). 实现
问题是我有一个已经被选中的现有行,然后我单击不可选择的行,selectedItems() 返回一个空列表。如果用户尝试选择不可选择的行,我希望所选行保持其选择。
我是否应该跟踪选择并在代码中处理这种情况,或者这可以通过其他方式实现。我宁愿不重新发明轮子。
谢谢。
【问题讨论】:
-
我已经连接到 selectionChanged() 信号,这就是我所说的。那时我得到一个空列表。所以有效地没有选择新点击的项目,但是旧的项目被清除了选择。不仅仅是 selectedItems() 告诉我,我可以直观地看到选择被清除...
-
在这里你可以找到我刚刚制作的 sn-p:github.com/aalimian/TreeWidgetSamples
-
我已将顶行设为不可选择。而且我无法选择它。所以这行得通。但是当我点击它时,子行的选择消失了。
-
哦,我们现在不要专注于多选。我已将其设置为单选。
-
我不在这个 sn-p 代码中。但这有关系吗?我们可以清楚地看到选择正在被清除。如果你愿意,我可以快速添加。
标签: c++ qt qwidget qtreewidget qtreewidgetitem