2016-10-08 69 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的项目分配到我的表 的列“时间” - 使用排序列方法对列表“时间”排序。