Двойной щелчок заголовка редактируемой вкладки QML в TabView - PullRequest
0 голосов
/ 06 ноября 2019

Можно ли добиться возможности редактирования заголовка вкладки в TabView после двойного щелчка по ней? Я имею в виду что-то следующее:

enter image description here

Я посмотрел на документацию по Tab, TabView и TabBar, но не нашел ничего, что могло бы помочьреализовать указанную функциональность.

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете встраивать что угодно в любой другой элемент в QML. Используя states, можно позволить TabButton вести себя в разных состояниях (дух), в этом случае в состоянии "editing", когда некоторые части отображаются только в этом состоянии, а другие скрыты.

Вам следуетпоместите следующее в некоторый qml

import QtQuick 2.0
import QtQuick.Controls 2.3

TabButton {
    id: btn

    onDoubleClicked: state = "editing"

    TextField {
        id: editor
        anchors.fill: parent
        text: btn.text
        visible: false
        onAccepted: {
            btn.text = text
            btn.state = ""
        }
    }

    states: [
        State {
            name: "editing"
            PropertyChanges {
                target: editor
                focus: true
                visible: true
            }
            PropertyChanges {
                target: btn
                explicit: true
                restoreEntryValues: false
                text: "" //so the text won't show up during editing
            }
        }
    ]
}
...