找回密码
 立即注册
收起左侧

关于Qt Event 处理机制

0
回复
8933
查看
[复制链接]
累计签到:18 天
连续签到:1 天
来源: 2016-9-5 09:46:52 显示全部楼层 |阅读模式
1Qter豆
根据Qt Event 处理机制,分析如下代码:
class MonitorObject : public QObject
{
public:
MonitorObject() {}
protected:
bool eventFilter(QObject*obj, QEvent *event);
};
bool MonitorObject::eventFilter(QObject*obj, QEvent *event)
{
qDebug(“eventFilter\n”);
returnfalse;
}
class MyWidget : public QWidget
{
public:
MyWidget(QWidget* parent = 0): QWidget (parent) {}
protected:
virtual bool event(QEvent *event);
virtual void keyPressEvent(QKeyEvent* event);
};
bool MyWidget::event(QEvent * event)
{
qDebug(“event\n”);
return QWidget::event(event);
}
void MyWidget::keyPressEvent(QKeyEvent *event);
{
qDebug(“keyPressEvent\n”);
MyWidget:: keyPressEvent(event);
}
int main(int argc, char **argv)
{
QApplication a(argc, argv);
MonitorObject *pMonitorObject= new MonitorObject;
MyWidget *pWidget = newMyWidget;
pWidget->installEventFilter(pMonitorObject);
pWidget->show();
return a.exec();
}
启动程序,当键盘事件(Key Press)发生时,列出打印信息。

请大神们帮我看看这个题。谢谢了

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了