Dan*_*man 7 c++ delphi events qt
在Qt中有类似Form.onChangeDelphi的东西吗?
我找到了一些changeEvent方法,但是当我写连接时
connect(this, SIGNAL(this->changeEvent),this, SLOT(checkIfSomethingChanged()));
并尝试检查它
void importdb_module::checkIfSomethingChanged(){
QMessageBox::information(0, "", "Test");
}
Run Code Online (Sandbox Code Playgroud)
我意识到它不起作用.
每当我的表格发生变化时,我想检查一些情况,怎么做?
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
}
Run Code Online (Sandbox Code Playgroud)
如果您想在事件之外知道表单已被更改,您可以向表单添加一个信号并从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);
}
Run Code Online (Sandbox Code Playgroud)
现在使用Qt 5连接语法将另一个类连接到新信号: -
connect(myFormObject, &MyForm::FormChanged, someclassObject, &SomeClass::HandleFormChanged);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2620 次 |
| 最近记录: |