gpt4 book ai didi

Qt QPushButton 样式表悬停

转载 作者:行者123 更新时间:2023-12-04 13:24:21 27 4
gpt4 key购买 nike

我有以下按钮样式表:

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 的错误还是我遗漏了样式表代码中的某些内容。

我做了一个动画 gif 来显示情况: enter image description here

谢谢

最佳答案

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

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 属性设置为正确的值。

关于Qt QPushButton 样式表悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25318538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com