Настройка QML TabButton - PullRequest
0 голосов
/ 01 мая 2020

Я хочу настроить TabButton s в QML и не могу найти достаточные свойства здесь .

enter image description here

Я могу изменить цвет шрифта, но как я могу изменить основной стиль линии?

Ответы [ 2 ]

1 голос
/ 02 мая 2020

Я бы предложил создать свой собственный элемент, который дает вам больше контроля с точки зрения проектных решений.

Чтобы создать вкладку с кнопками при sh, вы можете сделать что-то вроде ниже (Примечание: здесь есть много возможностей для улучшения, поэтому go и экспериментируйте, вы многому научитесь):


TopButton.qml (это элемент кнопки, который мы создаем, и мы используем его в наше меню вкладок)

import QtQuick 2.0

Rectangle {
    id: button
    width: 100
    height: 20
    color: "#ADD8E6"
    radius: 2
    property alias text: buttontext
    signal clicked

    property bool selected

    Text {
        id: buttontext
        anchors.centerIn: parent
        text: "Test"
    }

    MouseArea {
        id: mouseArea

        anchors.fill: parent
        cursorShape: Qt.PointingHandCursor
        hoverEnabled: true
        onClicked: button.clicked()
    }

    Rectangle {
        id: underlineRect

        visible: button.selected
        height: 2
        width: button.width
        color: "black"
        anchors.bottom: parent.bottom
    }

    Behavior on selected {PropertyAnimation {properties: "selected"; easing.type: Easing.InOutElastic; easing.amplitude: 2.0; easing.period: 0.5}}
}

TAB (который размещает кнопку в ряд)

Row {
        id: buttonRow
        spacing:2
        anchors.centerIn: parent

        TopButton {
            id: firstButton

            selected: true
            onClicked: {
                secondButton.selected = false
                selected = true
            }
        }

        TopButton {
            id: secondButton

            onClicked: {
                firstButton.selected = false
                selected = true
            }
        }
    }
1 голос
/ 01 мая 2020

Вы должны реализовать это самостоятельно. Вы можете использовать тот же шаблон, который использовал Qt для кнопки, и изменять все, что вы хотите. Чтобы найти имплантацию, вы можете войти в папку Qt. Для меня это в:

C: \ Qt \ 5.11.1 \ Src \ qtquickcontrols2 \ src \ import \ controls \ material

Другой вариант - поставить например, внутри вкладки вы можете сделать:

 TabBar {
        id: tabBarItem

        currentIndex: model.currentIndex 

        contentItem: ListView {
            id: view

            model: model //it Contains the list of items that you want to show
            delegate: delegate // Delegate that could be a button or whatever. You could use the default delegate ItemDelegate
         }

}

https://doc.qt.io/qt-5/qml-qtquick-controls2-itemdelegate.html

...