在 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);
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);
我需要向 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);
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);