我有一个包含3列和1000行的QTableWidget(取决于数据库中提取的项目数)。
我还有一个" Reload"按钮以重新加载数据库中的所有项目。
在" Reload" 按钮中,我想在从数据库加载项目之前删除QTableWidget中的所有行。
当rowcount = 1时,删除QTableWidget中的所有行会导致应用程序崩溃。 我使用以下逻辑删除所有行。
if( ui->tableWidget->rowCount() > 0)
{
ui->tableWidget->setRowCount(0);
}
也尝试了以下逻辑
while (ui->tableWidget->rowCount() > 0)
{
ui->tableWidget->removeRow(0);
}
当rowCount = 1时,我的应用程序使用任一逻辑崩溃。 只有当我在发布模式下构建应用程序时它才会发生,而它在调试模式下工作正常。
我能不知道为什么我的应用程序崩溃了。
答案 0 :(得分:0)
我遇到了同样的问题,从一天到另一天,它停止工作,而且我找不到代码的哪一部分正在使程序崩溃。
我的程序用于从文件夹读取文件并将文件信息上载到QTableWidget,并且我还使用cellWidgets来获取某些信息。
这些是我想到的问题,您应该检查一下它们是否在您身上没有发生:
程序一直在修改表,所以也许我正在尝试访问一个空表。因此,我对调用表行的行进行了注释并对其进行了调试,但这不是问题。
这可能是调试器问题,所以我尝试在“发布”和“配置文件”模式下进行构建,但仍然无法正常工作。
尝试访问cellWidget信息时可能会遇到问题,因此我检查了一下,但没有尝试访问它。
也许问题出在我试图消除具有cellWidget的行时,所以我尝试在将行数设置为0之前使用ui->tableWidget->clearContents()
(无效)
尝试了所有这些之后,我来到了this帖子中。基本上,我用内部实现setRowCount(0)
代替了ui->table->model()->removeRows(0,ui->table->rowCount());
,对其进行了调试,然后开始工作。