始终保持突出显示“ TabButton”-(自定义样式)

时间:2019-01-03 03:40:23

标签: javascript qml

点击后,我想使 TabButton 保持突出显示,因此我知道我当前处于活动状态的标签。

就像原始的 TabButton 一样,当我单击 Surface 标签时,即使我单击了其子标签,它也会保持突出显示状态。 (请参见下图,这些选项卡处于活动状态表面> 反射> 基本> 反射光

0_1546429165333_sample_01.png

但是当我在“ TabButton”上应用样式时,它不起作用:

0_1546429668805_sample_02.png

如您所见,这些标签(表面> 反射> 基本)未突出显示,而仅反射光,即使我单击其他任何内容,它也会失去其突出显示。

这是我的“ 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文档中找不到与此有关的任何内容。

有什么主意吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我在查看customizing-toolbutton文档后才发现它。 基本上需要使用control.checked而不是control.activeFocus