2016-10-08 71 views
0

我有一些qtablewidget行。我需要隨機排序這些行。隨機排序Qtablewidget的行

這樣做的最好方法是什麼?我不知道除了刪除和添加隨機所有的行...

+1

你能澄清一下,「隨機排序」是指按自定義標準排序還是隨機排列項目順序? –

回答

0

「我假定你正在尋找一些自定義排序。不列標題點擊排序」

我有辦法做到這一點。可能會更有效率的方式將在那裏。

使用下面的函數獲取「QTableWidgetItem」的「QList」。與您的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); 
} 

並不清楚你的 「QTableWidget的」 如下圖所示

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

然後排序列表。

然後重新排序後「QTableWidgetItems」的列表分配給QTableWidget的

0

最後我做了一些不同的東西。

我需要做的: - 隨機我的表 的行 - 我有一個列有「時間」和我一起15:00初始化它的第一行,然後添加爲每行1分鐘。

我使用的解決方案: - 用我的時間創建qlist(15:00,15:01,15:02 ...) - 隨機化qlist(15:01,15:03,... 。) - 將qlist的項目分配到我的表 的列「時間」 - 使用排序列方法對列表「時間」排序。