Qt-检测QListView中的项目信息更改

Qt - Detect item information change in QListView

本文关键字:信息 项目 检测 QListView Qt-      更新时间:2023-10-16

我有一个QListView,它连接到一个QStandardItemModel。如何检测模型或QListView中的任何信息更改?我用itemChanged()为模型尝试了Signals和Slots,但它似乎破坏了整个程序。

Qbject::connect(bugModel, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(bugInfoChanged()));

这是我用来连接信号的代码。函数bugInfoChanged()只是运行一个qDebug(),上面写着"Changed"。但当我启动程序时,它显示了一个崩溃错误。

当我注释这一行(//QObj…)时,崩溃不会发生,但当我删除注释时,它会再次崩溃。我在我的"私人插槽"区域有这个:

void bugInfoChanged();

在cpp:中是这样的

void MainWindow::bugInfoChanged()
{
qDebug() << "Changed";
}

我不知道是什么原因导致了这次事故:/

我自己修复了它。事实证明,如果我把连接代码放在一个填充列表的函数中,它就可以正常工作。它曾经崩溃,因为应用程序启动时列表中没有任何项目。