QT插槽获得两次信号

JP.*_*JP. 1 c++ qt qt4 signals-slots qtablewidget

在QT4.5中,

我使用QTableWidget,我已将信号QTableWidget :: itemClicked()连接到这样的自定义插槽:

connect(_table, SIGNAL(itemClicked(QTableWidgetItem*)), item, SLOT(sloItemClicked(QTableWidgetItem*)));
Run Code Online (Sandbox Code Playgroud)

我为添加到表中的每一行创建了这样的连接.

问题是插槽sloItemClicked不止一次被调用,似乎它被称为X时间,其中X是我表中的行数.

但它一直在呼唤同一行.(我收到的QTableWidgetItem是一样的).

这是一个问题,因为当单击该行时,我将其删除.所以下次调用时,QTableWidgetItem不再有效而且崩溃.

如果我只有一行,一切都按预期工作..

任何的想法?

谢谢

Tro*_*our 8

您应该只创建一次连接,因为信号是桌面上的信号而不是个人QTableWidgetItem.当它被发射时,它将为你QTableWidgdetItem提供你点击的参数.