QToolButton 在禁用状态下接受悬停吗?
QToolButton accepts Hover in disabled state?
我有那个图标:
这是 QToolButton 的继承者,没有覆盖绘制事件,实际上我现在正在 Qt Designer 中工作。
它有一些重载的样式:
MyToolButton {
border-style: none;
padding-right: 14px;
border-radius: 1.5px;
}
MyToolButton:hover {
background-color: rgb(220, 224, 228);
}
MyToolButton:hover:focus {
background-color: rgb(220, 224, 228);
}
MyToolButton:pressed {
background-color: rgb(193, 201, 208);
}
MyToolButton:pressed:focus {
background-color: rgb(193, 201, 208);
}
MyToolButton:menu-arrow {
image: url(:/Images/i13_down_arrow_combo.png);
}
MyToolButton:menu-arrow:disabled {
image: url(:/Images/i13_down_arrow_combo_disabled.png);
outline: none;
border: 0px;
}
MyToolButton::menu-button {
border-radius: 0px;
border: 1px solid transparent;
padding-right: 2px;
padding-left: 2px;
width: 8px;
}
MyToolButton::menu-button:pressed {
border-top: 1px solid rgb(169, 180, 190);
border-right: 1px solid rgb(169, 180, 190);
border-bottom: 1px solid rgb(169, 180, 190);
border-top-right-radius: 1.5px;
border-bottom-right-radius: 1.5px;
}
MyToolButton::menu-button:pressed:focus {
outline: none;
border: 0px;
padding-right: 3px;
}
MyToolButton[isMenuShown="false"]::menu-button:pressed:focus
{
background-color: rgb(220, 224, 228);
}
MyToolButton[isMenuShown="true"]::menu-button:pressed:focus
{
background-color: rgb(193, 201, 208);
}
按钮处于禁用状态,但它在悬停时有反应!
这是悬停图标:
我需要做的是删除悬停时显示的边框。
我已经尝试了很多变体,比如 hover:disabled 重载和其他东西。
有人可以帮忙吗?
发现那个麻烦。
我已将自定义 class MyToolButton 导出到 Qt Designer。
它重载了 paintEvent,看起来像:
void MyToolButton::paintEvent(QPaintEvent* event) {
QToolButton::paintEvent(event);
if (<some condition>)
else if (underMouse()) // <-----NO isEnabled() here
drawSolidBorder ... ///
else if (<some condition>)
drawSolidBorder ... ///
}
就是这样。
我有那个图标:
这是 QToolButton 的继承者,没有覆盖绘制事件,实际上我现在正在 Qt Designer 中工作。
它有一些重载的样式:
MyToolButton {
border-style: none;
padding-right: 14px;
border-radius: 1.5px;
}
MyToolButton:hover {
background-color: rgb(220, 224, 228);
}
MyToolButton:hover:focus {
background-color: rgb(220, 224, 228);
}
MyToolButton:pressed {
background-color: rgb(193, 201, 208);
}
MyToolButton:pressed:focus {
background-color: rgb(193, 201, 208);
}
MyToolButton:menu-arrow {
image: url(:/Images/i13_down_arrow_combo.png);
}
MyToolButton:menu-arrow:disabled {
image: url(:/Images/i13_down_arrow_combo_disabled.png);
outline: none;
border: 0px;
}
MyToolButton::menu-button {
border-radius: 0px;
border: 1px solid transparent;
padding-right: 2px;
padding-left: 2px;
width: 8px;
}
MyToolButton::menu-button:pressed {
border-top: 1px solid rgb(169, 180, 190);
border-right: 1px solid rgb(169, 180, 190);
border-bottom: 1px solid rgb(169, 180, 190);
border-top-right-radius: 1.5px;
border-bottom-right-radius: 1.5px;
}
MyToolButton::menu-button:pressed:focus {
outline: none;
border: 0px;
padding-right: 3px;
}
MyToolButton[isMenuShown="false"]::menu-button:pressed:focus
{
background-color: rgb(220, 224, 228);
}
MyToolButton[isMenuShown="true"]::menu-button:pressed:focus
{
background-color: rgb(193, 201, 208);
}
按钮处于禁用状态,但它在悬停时有反应!
这是悬停图标:
我需要做的是删除悬停时显示的边框。
我已经尝试了很多变体,比如 hover:disabled 重载和其他东西。
有人可以帮忙吗?
发现那个麻烦。
我已将自定义 class MyToolButton 导出到 Qt Designer。
它重载了 paintEvent,看起来像:
void MyToolButton::paintEvent(QPaintEvent* event) {
QToolButton::paintEvent(event);
if (<some condition>)
else if (underMouse()) // <-----NO isEnabled() here
drawSolidBorder ... ///
else if (<some condition>)
drawSolidBorder ... ///
}
就是这样。