QML TableView:如何绑定到 selection.onSelectionChanged()
Posted
技术标签:
【中文标题】QML TableView:如何绑定到 selection.onSelectionChanged()【英文标题】:QML TableView: how to bind to selection.onSelectionChanged() 【发布时间】:2015-08-30 00:46:17 【问题描述】:我知道如何绑定到像 onClicked
这样的根 TableView 信号,但由于 onSelectionChanged
是其 selection
属性的信号,我不确定如何绑定到它。
我确信我可以使用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】:啊,所以我没有 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()
【讨论】:
以上是关于QML TableView:如何绑定到 selection.onSelectionChanged()的主要内容,如果未能解决你的问题,请参考以下文章
单击列时在 Qml TableView Header 中查找单击事件
QML TableView 鼠标区域不会将点击传播到选择模型
QML TableView + QAbstractTableModel - 如何从 QML 编辑模型数据?