首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt QPushButton样式表悬停

Qt QPushButton样式表悬停
EN

Stack Overflow用户
提问于 2014-08-15 06:26:41
回答 1查看 12.9K关注 0票数 3

我有以下按钮样式表:

代码语言:javascript
复制
QPushButton:hover{
        background: qlineargradient(x1 : 0, y1 : 0, x2 : 0, y2 :   1, stop :   0.0 #ffd9aa,
                stop :   0.5 #ffbb6e, stop :   0.55 #feae42, stop :   1.0 #fedb74);
}

QPushButton {
        border: 1px solid #6593cf;
        border-radius: 2px;
        padding: 5px 15px 2px 5px;
        background: qlineargradient(x1 : 0, y1 : 0, x2 : 0, y2 :   1, stop :   0.0 #f5f9ff,
                stop :   0.5 #c7dfff, stop :   0.55 #afd2ff, stop :   1.0 #c0dbff);
        color: #006aff;
        font: bold large "Arial";
        height: 30px;
}




QPushButton:pressed {
        background: qlineargradient(x1 : 0, y1 : 0, x2 : 0, y2 :   1, stop :   0.0 #c0dbff,
        stop :   0.5 #cfd26f, stop :   0.55 #c7df6f, stop :   1.0 #f5f9ff);
        padding-top: 2px;
        padding-left: 3px;

}


QPushButton:on {
        background: qlineargradient(x1 : 0, y1 : 0, x2 : 0, y2 :   1, stop :   0.0 #5AA72D,
        stop :   0.5 #B3E296, stop :   0.55 #B3E296, stop :   1.0 #f5f9ff);
        padding-top: 2px;
        padding-left: 3px;
}

QPushButton:disabled {
        background: transparent #e5e9ee;
        padding-top: 2px;        
        padding-left: 3px;
        color: black;
}

我有一颗纽扣。当它被按下时,一个侧面的小部件会被调整大小。这样按钮就变成了按下的样式,当我松开的时候它就变成了悬停的样式。此外,调整小部件的大小,按钮“跟随”小部件。问题是,当我用鼠标做一些移动时,按钮保持悬停状态,并失去它。这是来自qt的bug,还是我在样式表代码中遗漏了什么。

我做了一个动画gif,展示了这种情况:

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-15 14:26:33

你可以说这是Qt中的一个bug。我会说这是一种由正确的逻辑引起的bug。你自己判断吧。小部件状态由WA_UnderMouse小部件属性定义。此属性由应用程序设置:

代码语言:javascript
复制
if ((e->type() == QEvent::Enter || e->type() == QEvent::DragEnter) ...
        widget->setAttribute(Qt::WA_UnderMouse, true);
else if (e->type() == QEvent::Leave || e->type() == QEvent::DragLeave)
        widget->setAttribute(Qt::WA_UnderMouse, false);

只有当应用程序从操作系统接收到鼠标事件时,才会发送QEvent::EnterQEvent::Leave事件。

您不移动鼠标,应用程序不会收到任何鼠标事件,因此WA_UnderMouse属性不会改变。

解决这个问题的方法之一是在移动按钮小部件时自己将Qt::WA_UnderMouse属性设置为正确的值。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25318538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档