
- 先安装事件过滤器
MyLable::MyLable(QWidget *parent) : QLabel(parent)
{
//设置追踪模式
//this->setMouseTracking(true);
this->installEventFilter(this);
} - 重写过滤器
virtual bool eventFilter(QObject* watched,QEvent* event);
bool MyLable::eventFilter(QObject *watched, QEvent *event)
{
//判断是当前控件触发了
if(watched == this)
{
//判断触发了哪个事件
if(event->type() == QEvent::MouseButtonPress)
{
qDebug()<<“过滤器”<<endl;
return true;
}
}
else
{
return QLabel::eventFilter(watched,event);
}
}
使用事件过滤器处理鼠标点击
这段代码展示了如何在Qt环境中为一个自定义标签控件(MyLable)安装事件过滤器,并重写eventFilter方法来捕获鼠标点击事件。通过安装事件过滤器,当鼠标在该控件上按下时,程序将输出相关信息。
602

被折叠的 条评论
为什么被折叠?



