【问题标题】:Randomly sort rows of Qtablewidget随机排序 Qtablewidget 的行
【发布时间】:2016-10-08 21:29:20
【问题描述】:

我有一个带有一些行的 qtablewidget。我需要对这些行进行随机排序。

最好的方法是什么?我不知道除了随机删除和添加所有行...

【问题讨论】:

  • 您能否澄清一下“随机排序”是指按自定义标准排序还是随机排序项目?

标签: qt qtablewidget


【解决方案1】:

“我假设您正在寻找一些自定义排序。不是列标题单击排序”

我有办法。可能会有更有效的方法。

使用以下函数获取“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

【讨论】:

    【解决方案2】:

    最后我做了一些不同的事情。

    我需要做的: - 随机我表的行 - 我有一列带有“时间”,我将第一行初始化为 15:00,然后为每行添加 1 分钟。

    我使用的解决方案: - 用我的时间创建一个 qlist (15:00, 15:01, 15:02 ...) - 随机化 qlist (15:01, 15:03, ....) - 将 qlist 的项目分配给我的表的“时间”列 - 使用排序列方法为我的表格排序“时间”列。

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 2012-12-04
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2014-04-06
      • 2012-11-19
      • 1970-01-01
      • 2012-03-16
      相关资源
      最近更新 更多