用户自定义事件,可方便得传递给所有QObject的子控件进行处理。
在头文件中:
//自定义的按钮点击事件
extern int selfClickMenueEvent;
class ClickMenueEvent : public QEvent
{
public:
ClickMenueEvent();
virtual ~ClickMenueEvent(){};
};
在cpp文件中:
//1、注册自定义事件类型
int selfClickMenueEvent = QEvent::registerEventType();
ClickMenueEvent::ClickMenueEvent():QEvent(Type(selfClickMenueEvent))
{
}
在调用处:
注意包含头文件,这里的事件发送对象是一个qwidget:
ClickMenueEvent * event = new ClickMenueEvent();
qApp->postEvent(ui->stackedWidget_2->currentWidget(), event);
在widget的接收处:
头文件:
void customEvent(QEvent *event);
在cpp文件中:
void WidgetPeopleManagement::customEvent(QEvent *event)
{
int type = event->type();
if (type == selfClickMenueEvent)
{
//自动切换至首页
ui->stackedWidget_3->setCurrentIndex(0);
}
}
如果定义有放放,也可:
ClickMenueEvent * e = dynamic_cast<ClickMenueEvent*>(event);
调用其内部方法。