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

没有这样的信号QTableWidget::cellChanged(int,int),qt,qt4,signals,qtablewidget,Qt,Qt4,Signals,Qtablewidget,这个题目很好地描述了我的问题 有问题的代码行: connect(table, SIGNAL(cellChanged(row, 5)), this, SLOT(updateSP())); 我想不出为什么那个信号无效。我在谷歌上搜索了一下,发现有几个人有同样的问题,但他们提出的解决方案不起作用 我在Ubuntu Karmic,g++上使用Qt4.5.2 有人知道我做错了什么吗?Trolltech关于cellChanged()的文档没有提到任何特殊要求 我不知所措 谢谢你的建议 在我看来,您似乎不了

这个题目很好地描述了我的问题

有问题的代码行:

connect(table, SIGNAL(cellChanged(row, 5)), this, SLOT(updateSP()));
我想不出为什么那个信号无效。我在谷歌上搜索了一下,发现有几个人有同样的问题,但他们提出的解决方案不起作用

我在Ubuntu Karmic,g++上使用Qt4.5.2

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

我不知所措


谢谢你的建议

在我看来,您似乎不了解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. =)
}

在我看来,您似乎不了解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. =)
}

添加了更通用的标记“qt”。该标记更具体。。不一般。无论如何,谢谢。添加了更通用的标记“qt”。该标记更具体。。不一般。无论如何,谢谢。啊!我以前看到过这个确切的建议,但现在一切都有意义了。啊,太天真了。谢谢凯米斯托,啊!我以前看到过这个确切的建议,但现在一切都有意义了。啊,太天真了。谢谢凯米斯托。