我有它的QTreeView和I setSortEnable = true
,並且所有的列顯示排序指示符,但現在我想要最後一列不顯示排序指示符,只是最後一列。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