Qt Quick 2 - Как получить содержимое делегата QTableView из модели c ++? - PullRequest
0 голосов
/ 26 марта 2020

В одном из моих проектов, используя Qt Quick 2, я создал TableView представление, в котором представлены aws пользовательские элементы. Шаблон элемента был определен в свойстве delegate моего табличного представления. Qml-код шаблона элемента выглядит примерно так:

Component
{
    id: itGridItem

    Item
    {
        width: gvMessageGrid.width
        height: itemTextID.height + 40

        Rectangle
        {
            property int messageWidth: (gvMessageGrid.width / 2) - 50

            id: itemRect
            x: senderIsMyself ? 25 : gvMessageGrid.width - (25 + messageWidth)
            y: 5
            width: messageWidth
            height: itemTextID.height + 20
            color: senderIsMyself ? "#d5d5d5" : "#800b940e"
            radius: 5
            clip: true

            Text
            {
                id: itemTextID
                width: parent.width - 20
                text: itemText
                renderType: Text.NativeRendering
                textFormat: Text.StyledText
                wrapMode: Text.WordWrap
                font.family: "Segoe UI Emoji"
                font.pixelSize: 18
                anchors.margins: 10
                anchors.left: parent.left
                anchors.top: parent.top
                color: "#101010"
            }
        }
    }
}

В моем коде на C ++ я также создал класс, унаследованный от QAbstractListModel, который я связал со своим представлением, используя свойство model моего TableView представления.

В этом классе c ++ мне нужно получить доступ к нескольким свойствам, определенным в показанном выше шаблоне элемента, в качестве примера мне нужно получить значение font.pixelSize свойство объявлено в Text дочернем компоненте моего шаблона элемента.

Как этого добиться?

...