QTableWidgetDervied::cellChanged
QTableWidgetDervied::cellChanged
本文关键字:cellChanged QTableWidgetDervied 更新时间:2023-10-16
当我编辑单元格时,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));
这不起作用。怎么了?
void cellChanged(int row, int column)
是一个SIGNAL,而不是一个可以重写的虚函数。
当我编辑单元格时,cellChanged未被调用。我做错了什么?
它不能被调用,只能被发出,因为它是一个信号,而不是一个方法或槽。
分别,当您子类化QTableWidget
时,您不需要将声明放入您的类中。
此外,您的连接使用是错误的。你试图在课外使用它,这是错误的。我建议把它放到一个实际的方法中,否则它甚至不会编译。
同样,虽然在您的槽中不使用cellChanged的参数不是编译错误,但您可能希望根据您的用例重新考虑该决定。
此外,您的slot没有被标记为slot,只是类声明中的常规公共方法。您需要将其更改为这样的内容,否则,它将再次不可接受,并且您可能会遇到运行时问题,这可能是您在这里的问题:
public slots:
void f();