2011-09-13 10 views
0

Qtableウィジェットを列でソートしたいが、ソート中に最初の行を考慮しないでください(2行目以降のソートを意味します) sortbycloumnを使用する方法はありますか)メソッドを使用するか、他の方法でQTにQTableWidgetを2行目以降にソートすることができます。QTで特定の行範囲のQtableWigetをソートする方法

答えて

0

私はおそらくこれらの線に沿って何かするだろう:

  • サブクラスQTableWidgetItemを
  • ((にsetDataを使用して<オペレータ最初の行の項目のすべてに特別なフラグを設定し
  • を再実装))

次に、あなたがこのような何かを行うことができます。

bool MyTableWidget::operator <(MyTableWidgetItem *other) 
{ 
    if(specialFlag) 
    return true; 

    return QTableWidgetItem::operator<(other); 
} 

このようにして、最初の行はまだソートされていますが、他のすべての行より常に「少ない」とみなされています。

並べ替え方向(昇順または降順)を変更したときに行が下に向かないようにするには、テーブルウィジェットからヘッダービューを取得し、その方向を尋ねることで<関数の動作を変更できますソート。

参照:

  • QTableWidgetItem :: tableWidget()
  • QTableWidget :: headerView()
  • QHeaderView :: sortIndicatorOrder()
関連する問題