QAbstractTableModel
görüntülemek için QML TableView
kullanmaya çalışıyorum. Denklemin eksik kısmı,'u geçersiz kılmamalarına rağmen TableView
numaralı kolonda değişken bir sütun sayısına sahip olmamak gibi görünmektedir; bu, Qt'ye sütunlarımın numarasını ve adını söylemelidir. Sadece QML kullanarak bu dışarı test çalıştı: çalıştırdığınızda QML TableView dinamik sütun sayısı
import QtQuick 2.0
import QtQuick.Controls 1.1
Rectangle {
anchors.fill: parent
property real showImage: 1.0
width: 500
TableView {
id: myTable
model: myModel
// TableViewColumn {
// role: "title"; title: "Name"; width: 200
// }
}
ListModel {
id: myModel
ListElement {
title: "item one"
}
ListElement {
title: "item two"
}
}
}
bu onlardan tanımlanan rollerle
ListElement
s içeren
TableView
'ın modunda rağmen hiçbir şey göstermez.
Ancak, yukarıdaki kod uncommented ise ve bir TableViewColumn
tanımlanmışsa, sütun bu rolün verilerini beklendiği gibi görüntüleyecek, ancak tablo başka roller göstermeyecektir. Açıkçası, bu yalnızca statik olarak tanımlanmış bir sayıda sütun için çalışacak ve benim çalışma zamanına kadar sütun sayısı bilinmeyen durumumda değil.
Verilen örnek benim modelimin C++'da tanımlanması dışında benim temel yaşam örneğimle aynıdır.
Bu zaten here sorulmuş olabilir, ancak herhangi bir yanıt almadı gibi görünüyor.
DÜZENLEME: C itibaren
function addColumnToTable(roleName) {
var columnString = 'import QtQuick 2.3; import QtQuick.Controls 1.2; TableViewColumn {role: "'
+ roleName + '"; title: "' + roleName + '"; width: 40}';
var column = Qt.createQmlObject(
columnString
, myTable
, "dynamicSnippet1")
myTable.addColumn(column);
}
++:
QVariant roleName = "name";
QObject *root = view->rootObject();
QMetaObject::invokeMethod(root, "addColumnToTable", Q_ARG(QVariant, roleName));
Bu en azından bana dinamik modeli içinden olmasa da C++ sütun eklemek için izin Bir javascript işlevi çağırarak çalıştı/mimari görünümü. Yoann’ın çözümü bundan çok uzak ve uzak. Dinamik İhtiyacınız kadar TableViewColumn
, gibi TableView
ait resources
özelliğini kullanarak oluşturabilir
Mükemmel cevap! Belgeleri birazcık “kaynak” özelliğini bulmak için bulmam gerekti ve hatta bu şekilde kullanılabileceğini bilemezdim. – sjdowling