QT自定义控件的悬浮样式实现 您所在的位置:网站首页 qwidget设置边框样式 QT自定义控件的悬浮样式实现

QT自定义控件的悬浮样式实现

2024-07-17 17:18| 来源: 网络整理| 查看: 265

很多时候为了提升UI的交互友好性,我们需要增加控件的悬浮样式,但是通过下面的QSS样式配置悬浮样式的时候,会出现悬浮样式不生效的问题。

CustomWidget:hover { border:2px solid #017BC9; background-color:#FFFFFF; }

这是因为在QWidget的绘制事件中默认没有对悬浮样式进行绘制的原因,所以我们只需要在paintEvent()中添加对应的绘制代码就可以了。

void CustomWidget::paintEvent(QPaintEvent *event) { QStyleOption opt; opt.initFrom(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }

还有在一些特殊的需求中,我们需要捕获控件的悬浮事件做一些事情,这就要求我们对控件的事件循环进行处理,然后捕获到对应的悬浮事件发送到对应的业务中。

控件开启悬浮事件需要在头文件中声明各种窗口悬浮事件,并在事件消息响应中拦截悬浮消息并对对应的消息进行处理。

首先开启控件的悬浮事件开关。

//QWidget需要设置hover属性才能支持hover事件 this->setAttribute(Qt::WA_Hover);

在头文件中声明事件对应的接口

protected: bool event(QEvent * e); //悬浮进入事件 void hoverEnter(QHoverEv


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有