怎么自定义事件


如何自定义事件
现在要做这样一个效果:

有很多个按钮,当我点击某个按钮时,另外的某个按钮上面的字符会发生相应的变化----但是我不知道是哪个按钮,根据字符的变化,再去触发另一些事件


由此,我认为,我需要这样做:

首先定义一个事件类nameChangedEvent,表示按钮上的字符变化了

然后再定义一个按钮类,这个类继承了QButton,里面定义一个signal: name_changed()

再定义一个函数:

void nameChanged(nameChangedEvent *event)

{

emit name_changed();

}


然后在主窗口类的构造函数,我就可以connect了:

connnect(ui->button1, SIGNAL(namechanged()), this, SLOT(button1nameChanged));

connnect(ui->button2, SIGNAL(namechanged()), this, SLOT(button2nameChanged));

...

...




现在,我不知道如何去定义一个上述需要的事件:nameChangedEvent

以及如何让系统去自动监听这个事件




求大神帮忙~~



谢谢~~!

移动开发 SenchaTouch 程序开发

狸猫不手滑 11 years, 8 months ago

重载changeEvent

里面应该有你需要的东西。。


如果木有的话。。注册一个呗。。

registerEventType

可以注册自定义event

QEvent::registerEventType(QEvent::User + YourEvent);

处理的话。。

就要重载eventFilter了。


注意:YourEvent别和Qt的事件冲突了。。

神一般的M酱 answered 11 years, 8 months ago

Your Answer