在 QTableWidget 中显示项目

Displaying items in QTableWidget

我需要向 QTableWidget 添加项目,项目是 QList qList,我尝试了一些代码作为

int row = 0;
QList<Players>::iterator j;
                for (j = qList.begin(); j != qList.end(); ++j){
                    ui->tableWidget->insertRow(qList.count);
                    ui->tableWidget->setItem(row, 0, new QTableWidgetItem(j->playerName) );
                    ui->tableWidget->setItem(row, 1, new QTableWidgetItem(j->playerRank) );
                    row++;

        }

其中 playerName 和 playerRank 是 Players class 中的一些属性。

class Players
{
public:
    Players();
    int playerId;
    QString playerName;
    int playerRank;
};

但是 QTableWidget 中没有任何显示。如何做到这一点?

如果没有看到整个代码,我无法评论是否存在其他问题,但这行似乎是错误的

ui->tableWidget->insertRow(qList.count);

来自qtablewidget documentation

void QTableWidget::insertRow(int row)
Inserts an empty row into the table at row.

qlist.count 似乎是列表的总长度。您正在 qlist.count 位置插入一行,而不是添加 qlist.count 行。当您为 n 个元素添加 n^2 行时(在 for 循环中添加 ),甚至这个逻辑似乎也是错误的。你应该看看 setRowCount

把这条线改成这样

ui->tableWidget->insertRow(row);