1

タイトルは私の問題をよく表しています。

問題のあるコード行:

connect(table, SIGNAL(cellChanged(row, 5)), this, SLOT(updateSP()));

その信号が有効でない理由は思いつきません。私はグーグルで検索し、同じ問題を抱えている人を何人か見つけましたが、そこで提起された解決策は機能しません。

Ubuntu Karmic、g ++でQt 4.5.2を使用しています。

私が間違っていることを知っている人はいますか?cellChanged() に関する Trolltech のドキュメントには、特別な要件については言及されていません。

私は途方に暮れています。

アドバイスをありがとう!

4

1 に答える 1

6

Qt の Signals と Slots の概念を理解していないようです。SIGNAL & SLOT マクロはインターフェースを取ります。何かのようなもの

connect(table, SIGNAL(cellChanged(int, int)), this, SLOT(updateSP()));

うまくいくかもしれませんが、期待どおりに動作させるには、スロットに同じ引数の数が必要です。

connect(table, SIGNAL(cellChanged(int, int)), this, SLOT(updateSP(int, int)));

スロットは次のようになります。

void ClassFoo::updateSP(int row, int column)
{
  // row is the number of row that was clicked;
  // column is the number of column that was clicked;
  // Here we go! It's right place to do some actions. =)
}
于 2010-01-30T10:55:29.297 に答える