当我编辑单元格时,不会调用cellChanged。我做错了什么?
class QTableWidgetDerived : public QTableWidget
{
Q_OBJECT
//...
protected:
void cellChanged(int row, int column)
{
//...
}
//...
};
class QTableWidgetDerived : public QTableWidget
{
Q_OBJECT
public:
//...
void f(int, int);
protected:
void cellChanged(int row, int column)
{
//...
}
//...
};
connect(this,SIGNAL(cellChanged(int,int)),this,SLOT(f(int,int)));
这不起作用。有什么问题?
答案 0 :(得分:1)
void cellChanged(int row, int column)
是一个SIGNAL,而不是您可以覆盖的虚函数。只需将SIGNAL连接到SLOT并继续。
答案 1 :(得分:1)
当我编辑单元格时,不会调用cellChanged。我做错了什么?
它不能被调用,只发出正弦信号而不是方法或插槽。
分别在您QTableWidget
的子类时,您不需要将声明放入您的班级。
此外,您的连接使用错误。你试图在课外使用它是错误的。我建议把它放到一个实际的方法中,否则它甚至都不会编译。
此外,虽然不使用插槽中cellChanged的参数进行编译错误,但您可能希望根据您的用例重新考虑该决定。
此外,您的广告位未标记为广告位,只是您的类声明中的常规公共方法。您需要将其更改为类似的内容,否则,它将无法接受,您可能会遇到运行时问题,这可能是您的问题所在:
public slots:
void f();