【发布时间】:2016-10-08 21:29:20
【问题描述】:
我有一个带有一些行的 qtablewidget。我需要对这些行进行随机排序。
最好的方法是什么?我不知道除了随机删除和添加所有行...
【问题讨论】:
-
您能否澄清一下“随机排序”是指按自定义标准排序还是随机排序项目?
标签: qt qtablewidget
我有一个带有一些行的 qtablewidget。我需要对这些行进行随机排序。
最好的方法是什么?我不知道除了随机删除和添加所有行...
【问题讨论】:
标签: qt qtablewidget
“我假设您正在寻找一些自定义排序。不是列标题单击排序”
我有办法。可能会有更有效的方法。
使用以下函数获取“QTableWidgetItem”的“QList”。
QList<QTableWidgetItem *> findItems(const QString & text, Qt::MatchFlags flags) const
然后根据您的条件对列表进行排序,如下所示
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”。
然后将“QTableWidgetItems”的排序列表重新分配给 QTableWidget
【讨论】:
最后我做了一些不同的事情。
我需要做的: - 随机我表的行 - 我有一列带有“时间”,我将第一行初始化为 15:00,然后为每行添加 1 分钟。
我使用的解决方案: - 用我的时间创建一个 qlist (15:00, 15:01, 15:02 ...) - 随机化 qlist (15:01, 15:03, ....) - 将 qlist 的项目分配给我的表的“时间”列 - 使用排序列方法为我的表格排序“时间”列。
【讨论】: