QML TableView:如何绑定到select . onselectionchanged ()



我知道如何绑定到根表视图信号,如onClicked,但由于onSelectionChanged是其selection属性的信号,我不确定如何绑定到它。

我想我肯定可以使用Connections绑定到它,但以下代码不起作用:

EDIT: 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不会更新。我如何应对选择的变化?

啊,所以我没有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()
        }
    }

相关内容

  • 没有找到相关文章

最新更新