标题很好地描述了我的问题。
令人讨厌的代码行:
connect(table, SIGNAL(cellChanged(row, 5)), this, SLOT(updateSP()));
我无法想到这个信号无效的原因。我google了一下,发现有几个人有同样的问题,但那里提出的解决方案不起作用。
我在Ubuntu Karmic上使用Qt 4.5.2,g ++。
任何人都知道我做错了什么? Trolltech关于cellChanged()的文档没有提到任何特殊要求。
我很茫然。
感谢您的任何建议!
答案 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. =)
}