gpt4 book ai didi

qt - 如何在QTableWidget中对数据进行排序?

转载 作者:行者123 更新时间:2023-12-04 00:03:11 28 4
gpt4 key购买 nike

我有一个 QTableWidget第一列包含从 1 到 1000 的数字。现在我需要根据第一列对表格进行排序。

我正在使用函数 sortItems(int column, Qt::AscendingOrder) ,但显示为:

1, 10, 100, 1000, 101, 102, ...



但我需要这个结果:

1, 2, 3 ,4...., 1000.



我正在使用 CSV 文件来填充表格。

最佳答案

这些值按字符串排序,因为您将它们按原样存储在模型中。
QVariant如果您让它自己进行转换,则可以记住数据的原始类型,并且在排序时将使用该类型的比较运算符:

// Get the value from the CSV file as a numeric type
int valueFromCsvFile = ...;

// don't do this
QTableWidgetItem *item = new QTableWidgetItem(QString::number(valueFromCsvFile));

// but do this instead
QTableWidgetItem *item = new QTableWidgetItem;
item.setData(Qt::EditRole, valueFromCsvFile);

单元格编辑器也会适应 QVariant 的类型:
  • QSpinBoxint ,
  • QDoubleSpinBoxdoublefloat ,
  • QDateTimeEditQDateTime
  • ...
  • 关于qt - 如何在QTableWidget中对数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848683/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com