没有这样的信号QTableWidget :: cellChanged(int,int)

时间:2010-01-30 09:49:24

标签: qt qt4 signals qtablewidget

标题很好地描述了我的问题。

令人讨厌的代码行:

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

我无法想到这个信号无效的原因。我google了一下,发现有几个人有同样的问题,但那里提出的解决方案不起作用。

我在Ubuntu Karmic上使用Qt 4.5.2,g ++。

任何人都知道我做错了什么? Trolltech关于cellChanged()的文档没有提到任何特殊要求。

我很茫然。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:6)

对我来说,你似乎并不理解Qt's Signals and Slots concepts.信号和& 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. =)
}