【发布时间】:2015-01-13 10:13:33
【问题描述】:
我有一个 3 列和 1000 行的 QTableWidget(取决于从数据库中获取的项目的数量)。
我还有一个“重新加载”按钮来重新加载数据库中的所有项目。
在“重新加载”按钮中,我想在从数据库加载项目之前删除QTableWidget中的所有行。
当 rowcount = 1 时,从 QTableWidget 中删除所有行会使应用程序崩溃。 我正在使用以下逻辑删除所有行。
if( ui->tableWidget->rowCount() > 0)
{
ui->tableWidget->setRowCount(0);
}
也尝试过以下逻辑
while (ui->tableWidget->rowCount() > 0)
{
ui->tableWidget->removeRow(0);
}
当 rowCount = 1 时,我的应用程序使用任一逻辑崩溃。 只有当我在发布模式下构建我的应用程序而它在调试模式下工作正常时才会发生这种情况。
我能知道我的应用程序为什么会崩溃吗?
【问题讨论】:
-
你确定你的程序在这些行崩溃了吗?
-
@Robert 是的,我通过注释代码行进行了手动调试。我还使用 QDebug 在删除行(0)后打印行数。它一直显示到 rowCount = 1,然后崩溃。
-
这并不一定意味着程序恰好在这些行崩溃,我在想的是你可能会访问(稍后)tablewidget的第一个元素,当你删除它时你会得到一个访问冲突。 ...可能是,只是想帮助 ^^
-
尝试使用
ui->tableWidget->clearContents()而不是setRowCount(0) -
@Meefte...我也试过 clearContents() 。它的崩溃。 :(
标签: qt qt4 qtablewidget