2016-10-08 44 views
0

私はいくつかの行を持つqtablewidgetを持っています。私はこれらの行をランダムに並べ替える必要があります。ランダムにQtablewidgetの行をソートする

これを行うにはどのような方法が最適ですか?私はランダムにすべての行を削除し、追加を除く見当がつかない...

+1

「ランダムに並べ替える」とは、カスタム条件でソートするか、項目の順序をランダム化するかを明確にすることはできますか? –

答えて

0

は、「私はあなたには、いくつかのカスタムの並べ替えを探していると仮定します。未列ヘッダのクリックソート」

私はそれを行うための方法を持っています。はるかに効率的な方法かもしれない。

以下の機能を使用して「QTableWidgetItem」の「QList」を取得します。あなたの "QTableWidget" をクリアしていないあなたのcondiion

bool sortFun(const QTableWidgetItem* v1, const QTableWidgetItem* v2) 
{ 
    return //your sor criteria; 
} 

int doComparison() 
{ 

    QList<QTableWidgetItem *> fieldsList; 

    // Add items to fieldsList. 

    qSort(fieldsList.begin(), fieldsList.end(), sortFun); 
} 

と、以下のように

QList<QTableWidgetItem *> findItems(const QString & text, Qt::MatchFlags flags) const 

は、その後、あなたのリストを並べ替えます。

は、最終的に私は別の何かを行っているQTableWidget

0

に「QTableWidgetItems」のあなたのソートされたリストを割り当て直します。

私の行うべきこと: - 私のテーブルの行はランダム - 私は "時間"の列を持っています。最初の行は15:00に初期化してから、各行に1分追加します。

私が使用した解決方法: - 自分の時間(15:00、15:01、15:02 ...)でqlistを作成する - qlistをランダム化する(15:01、15:03、...) 。 - qlistの項目をテーブルの "Time"列に割り当てます。 - ソート列メソッドを使用して、 "Time"列のmy表を注文します。

関連する問題