QML TableView:如何绑定到selection.onSelectionChanged()

时间:2015-08-30 00:46:17

标签: qt qml tableview qt5 qt-signals

我知道如何绑定到像onClicked这样的根TableView信号,但由于onSelectionChangedselection属性的信号,我不确定如何绑定它

我确信我可以使用Connections绑定它,但以下代码无效:

编辑Connections确实有效,问题是无关的错误(请参阅我自己的回答)

    TextArea {
        id: messageDetailTextArea
        readOnly: true
        font: messageListDialog.font

        function update() {
            var selectionText = ''
            messagesTable.selection.forEach(function(rowIndex) {
                var row = model.get(rowIndex)
                if (row && row.message) selectionText += row.message
            })
            text = selectionText
        }

        Connections {
            target: messagesTable.selection
            onSelectionChanged: update()
        }
    }

但遗憾的是,当我点击表格中的某行时,TextArea不会更新。我如何回应选择变更?

1 个答案:

答案 0 :(得分:0)

啊,所以我没有model,并且对update()的调用合格。这很有效:

    TextArea {
        id: messageDetailTextArea
        readOnly: true
        font: messageListDialog.font

        function update() {
            var selectionText = ''
            messagesTable.selection.forEach(function(rowIndex) {
                var row = messagesTable.model.get(rowIndex)
                if (row && row.message) selectionText += row.message
            })
            text = selectionText
        }

        Connections {
            target: messagesTable.selection
            onSelectionChanged: messageDetailTextArea.update()
        }
    }