changeEvent 槽是 QWidget 中的一个虚拟的、受保护的函数。因此,如果您从 QWidget 或任何 QWidget 派生类继承,您将能够覆盖该函数。例如: -
class MyForm : public QWidget
{
protected slots:
virtual void changeEvent(QEvent * event);
}
void MyForm::changeEvent(QEvent* event)
{
// Do something with the event
}
如果您想在事件之外知道表单已更改,您可以向表单添加一个信号并从 changeEvent 发出它以传递事件:-
class MyForm : public QWidget
{
signals:
void FormChanged(QEvent* event);
protected slots:
virtual void changeEvent(QEvent * event);
}
void MyForm::changeEvent(QEvent* event)
{
emit FormChanged(event);
}
现在使用 Qt 5 连接语法将另一个类连接到新信号:-
connect(myFormObject, &MyForm::FormChanged, someclassObject, &SomeClass::HandleFormChanged);