gpt4 book ai didi

c++ - QTableWidget内存违规

转载 作者:太空宇宙 更新时间:2023-11-04 13:16:23 24 4
gpt4 key购买 nike

我想在 QTableWidget 中重置颜色,但是当 i = j = 1 时我收到了内存冲突错误。请注意 col = 3row = 8

int col= ui->ServiceTableWidg->columnCount();
int row=ui->ServiceTableWidg->rowCount();

for(int j=0 ; j<row ; j++)
{
for (int i=0 ; i<col ; i++)
{
if (ui->ServiceTableWidg->item(i,j) != NULL)
{
ui->ServiceTableWidg->item(i,j)->setBackground(Qt::white);
}
}
}

最佳答案

可能您的 QTableWidget 中没有项目。首先,您必须通过调用 setItem() 方法来创建它们,例如:

for(int i = 0; i < ui->tableWidget->rowCount(); i++)
for(int j = 0; j < ui->tableWidget->columnCount(); j++)
ui->tableWidget->setItem(i, j, new QTableWidgetItem(tr("some")));

而且您对 NULL 的检查是错误的。使用 dynamic_cast,例如:

if(QTableWidgetItem *item = dynamic_cast<QTableWidgetItem *>(ui->tableWidget->item(i, j)))
item->setBackground(Qt::black);

关于c++ - QTableWidget内存违规,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120220/

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