c++ - Qt:QTableWidget 将整数添加到表中

标签 c++ qt sorting qtablewidget

我正在创建一个 QTableWidget,显示我创建的结构中的一些信息。 但是,我似乎只能在表中显示字符串,而不能显示整数或 double 。

因此,作为解决方案,我将 double 和整数转换为字符串,它们在我的表格中显示完美。 但现在我无法正确使用排序函数,因为它按字母顺序对字符串进行排序,而我希望我的整数按值排序。

现在怎么样:15 16 2 33 4 66 8 应该如何:2 4 8 15 16 33 66

所以基本上,我正在寻找一种将整数添加到我的 QTableView 中的方法。 有什么想法吗?

这是我当前的代码:

ui->tableWidget->setRowCount(lijst.size());
ui->tableWidget->setColumnCount(4);
ui->tableWidget->setColumnWidth(0,200);
QStringList TableHeader;
TableHeader<<"Object"<<"Frames"<<"Views"<<"Percent";
ui->tableWidget->setHorizontalHeaderLabels(TableHeader);

for(int i = 0; i< lijst.size();i++)
{
    ui->tableWidget->setItem(i, 0, new QTableWidgetItem(lijst[i].name));
    ui->tableWidget->setItem(i, 1, new QTableWidgetItem(tr("%1").arg(lijst[i].nroFrames));
    ui->tableWidget->setItem(i, 2, new QTableWidgetItem(tr("%1").arg(lijst[i].nroViews)));
    ui->tableWidget->setItem(i, 3, new QTableWidgetItem(tr("%1").arg(lijst[i].percent)));
}

谢谢!

最佳答案

您可以实现自己的 QTableWidget 项目,该项目将以特殊方式处理比较。例如:

class TableItem : public QTableWidgetItem
{
public:
    TableItem(const QString & text)
        :
            QTableWidgetItem(text)
    {}

    TableItem(int num)
        :
            QTableWidgetItem(QString::number(num))
    {}

    bool operator< (const QTableWidgetItem &other) const
    {
        if (other.column() == 1) {
            // Compare cell data as integers for the second column.
            return text().toInt() < other.text().toInt();
        }
        return other.text() < text();
    }
};

有了这个,您只需创建 TableItem 而不是 QTableWidgetItem:

ui->tableWidget->setItem(i, 1, new TableItem(tr("%1").arg(lijst[i].nroFrames));

ui->tableWidget->setItem(i, 1, new TableItem(lijst[i].nroFrames);

关于c++ - Qt:QTableWidget 将整数添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20706819/

相关文章:

c++ - QSqlQuery 绑定(bind)值与 BindValues vs QString.arg() 是否存在性能差异?

c++ - Qt 中 QMainWindow 上的深色透明层

qt - QML 绑定(bind)到数组元素

sorting - 排序()不工作

c++ - 带左值表达式的 std::vector::emplace_back

java - 在 c++/java 中创建 sql 查询?

c++ - dijkstra 的恒权最短路径算法

algorithm - 最小特殊移动数排序数

vba - Excel VBA - 将数据拆分/排序到报告表中

C++ 结构数据成员