I've made a bit of progress.
I found this post on SO, which showed a way of producing a dynamic height for each row within the rowDelegate element:
rowDelegate: Rectangle {
height: (myModel.get(styleData.row).lineCount || 1) * 20
}
I've modified this for my particular use case, and now have the following:
rowDelegate: Rectangle {
Component.onCompleted: {
height = myTableModel.get(styleData.row).data.split("\n").length * 20
}
}
Note that in the above snippet, my 'myTableModel' refers to a ListModel (in my updated code), not the TableModel shown in my original post.
The above code works, but it doesn't provide a complete solution. If my TableView were to be expanded to incorporate additional columns, a Math.max() calculation would have to be performed to process the .split("\n").length value of every single column, which doesn't seem like an efficient solution. The more pressing concern, is that this approach only caters to multi-line text strings that have explicit '\n' newline characters. The solution should also be able to account for text strings that have wrapped.
Any ideas?