点击后,我想使 TabButton 保持突出显示,因此我知道我当前处于活动状态的标签。
就像原始的 TabButton 一样,当我单击 Surface 标签时,即使我单击了其子标签,它也会保持突出显示状态。 (请参见下图,这些选项卡处于活动状态表面> 反射> 基本> 反射光)
但是当我在“ TabButton”上应用样式时,它不起作用:
如您所见,这些标签(表面> 反射> 基本)未突出显示,而仅反射光,即使我单击其他任何内容,它也会失去其突出显示。
这是我的“ TabButtom”代码:
import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
TabButton{
id: control
contentItem: Text {
text: control.text
font: control.font
opacity: 1.0
color: "#C4C4C4"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: Rectangle {
Layout.fillHeight: true
gradient: Gradient{
id: gradientId
GradientStop{
position: 1.0;
color: control.enabled ? control.pressed ? "#3C3C3C" : control.activeFocus ? "#3C3C3C" : control.hovered ? "#323232" : "#303030" : "#303030"
}
GradientStop{
position: 0.0;
color: control.enabled ? control.pressed ? "#555555" : control.activeFocus ? "#222222" : control.hovered ? "#565656" : "#545454" : "#545454"
}
}
opacity: 1
border{
color: "#000000"
width: 1
}
}
}
我非常了解我缺少样式,因为没有我的自定义样式,它将起作用,并且在Customizing Qt Quick Controls 2文档中找不到与此有关的任何内容。
有什么主意吗?
谢谢。
答案 0 :(得分:0)
我在查看customizing-toolbutton文档后才发现它。
基本上需要使用control.checked
而不是control.activeFocus
。