Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QPushButton样式表悬停_Qt_Stylesheet_Qtstylesheets - Fatal编程技术网

Qt QPushButton样式表悬停

Qt QPushButton样式表悬停,qt,stylesheet,qtstylesheets,Qt,Stylesheet,Qtstylesheets,我有以下按钮样式表: 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 #

我有以下按钮样式表:

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,显示了当时的情况:


谢谢

你可以说这是Qt中的一个bug。我会说这是一种由正确的逻辑引起的错误。你自己判断吧<代码>悬停状态由
鼠标下的WA_
小部件属性定义。此属性由应用程序设置:

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::Enter
QEvent::Leave
事件仅在应用程序从操作系统接收鼠标事件时发送。
您不移动鼠标,应用程序不会接收任何鼠标事件,因此不会更改鼠标下的
WA_
属性。
解决此问题的方法之一是在移动按钮小部件时,自己将
Qt::WA_UnderMouse
属性设置为正确的值