QTreeView中的列上隐藏的排序指示器
我有它的QTreeView和I setSortEnable = true
,并且所有的列显示排序指示符,但现在我想要最后一列不显示排序指示符,只是最后一列。QTreeView中的列上隐藏的排序指示器
有任何想法或解决我的问题.. :(
请帮助 感谢
QHeaderView
总是拿上时,数据是由该列排序列排序指示器(如setSortIndicatorShown
是true
) 。
就是为什么它看起来像禁止指标的图纸的唯一方式,是禁止用左键单击该列进行排序。
要禁止由某一列排序则需要:
1.创建从QHeaderView
继承一个新的类(或使用事件过滤器)
2.重新实现mouseReleaseEvent
和mousePressEvent
3.使用logicalIndexAt
,以指示用户点击了列
4.呼叫setSectionsClickable(false)
之前调用基本方法和setSectionsClickable(true)
它之后。
例子:
void HeaderView::mouseReleaseEvent(QMouseEvent* e)
{
const int index = logicalIndexAt(e->pos());
if (index == 3) setSectionsClickable(false);
QHeaderView::mouseReleaseEvent(e);
setSectionsClickable(true);
}
做mousePressEvent
相同。
因此,你将禁止某些列
感谢您的帮助......这是工作 – 2014-11-06 16:00:01
的排序就我而言,我有三列,并隐藏第二列的排序指标是必要的。 因为我的有排序的自定义规则,刚QHeaderView::sectionClicked
事件与OnHeaderClicked(int column)
插槽,这样做:
switch (column)
{
case 0:
// Custom sorting operations
break;
case 1:
tree_widget_->sortByColumn(-1);
break;
case 2:
// Custom sorting operations
break;
}
'QHeaderView :: setSortIndicatorShown()'函数可能的帮助。 – vahancho 2014-11-06 09:18:24
它隐藏了我的树状图上的所有指标,我只想要一个。 :(..请帮助 – 2014-11-06 09:20:15