1

QT4.5では、

QTableWidgetを使用し、シグナルQTableWidget :: itemClicked()を次のようなカスタムスロットに接続しました。

connect(_table, SIGNAL(itemClicked(QTableWidgetItem*)), item, SLOT(sloItemClicked(QTableWidgetItem*)));

テーブルに追加する行ごとに、このような接続を作成します。

問題は、スロットsloItemClickedが複数回呼び出されることです。X回呼び出されるようです。ここで、Xはテーブルの行数です。

しかし、それは常に同じ行を要求しています。(私が受け取るQTableWidgetItemは同じです)。

行をクリックすると削除するので、これは問題です。そのため、次に呼び出されたときに、QTableWidgetItemは無効になり、クラッシュします。

行が1つしかない場合は、すべてが期待どおりに機能します。

何か案が?

ありがとう

4

1 に答える 1

8

シグナルはテーブル上のシグナルであり、個々のシグナルではないため、接続は1回だけ作成する必要がありますQTableWidgetItemQTableWidgdetItem放出されると、それはあなたが引数としてクリックしたものをあなたに与えるでしょう。

于 2010-01-26T21:39:50.657 に答える