我在QPushButton上有个信号:
void MainWindow::on_addNode_clicked()
{
ui->nodesTable->insertRow(ui->nodesTable->rowCount());
if(ui->nodesTable->rowCount()>1)
{
ui->nodesTable->item(ui->nodesTable->rowCount()-1, 0)->setText(ui->nodesTable->item(ui->nodesTable->rowCount()-2,0)->text());
}
else
{
ui->nodesTable->item(ui->nodesTable->rowCount()-1, 0)->setText(QString::fromStdString("0"));
}
}但每次单击该按钮时,它都会崩溃,出现分段错误。据我了解,第(.)项给nullptr但是为什么?
发布于 2017-10-20 06:50:04
当您的表中第一次没有项时,如果指针指向non,当您想到达它时,应用程序就会崩溃!
试试这个;
void MainWindow::on_addNode_clicked()
{
ui->nodesTable->insertRow(ui->nodesTable->rowCount());
if( !ui->nodesTable->rowCount() )
{
ui->nodesTable->item(ui->nodesTable->rowCount()-1, 0)->setText(ui->nodesTable->item(ui->nodesTable->rowCount()-2,0)->text());
}
else
{
ui->nodesTable->setItem(0, 0,new QTableWidgetItem(QString("New Item")));
}
}发布于 2017-10-20 00:33:21
发布于 2017-10-19 19:30:10
您必须设置列计数,并且必须手动设置该项:
ui->nodesTable->setColumnCount(1);
ui->nodesTable->insertRow(ui->nodesTable->rowCount());
ui->nodesTable->setItem(ui->nodesTable->rowCount()-1, 0, new QTableWidgetItem("0") );
if(ui->nodesTable->rowCount()>1)
{
ui->nodesTable->item(ui->nodesTable->rowCount()-1, 0)->setText(ui->nodesTable->item(ui->nodesTable->rowCount()-2,0)->text());
}
else
{
ui->nodesTable->item(ui->nodesTable->rowCount()-1, 0)->setText(QString::fromStdString("0"));
}https://stackoverflow.com/questions/46836938
复制相似问题