QT自定义控件的悬浮样式实现 | 您所在的位置:网站首页 › qwidget设置边框样式 › QT自定义控件的悬浮样式实现 |
很多时候为了提升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 实验室设备网 版权所有 |