【发布时间】:2014-09-02 17:33:03
【问题描述】:
我是 QML 新手,所以请原谅我缺乏知识。
我正在从我的数据库中加载一些数据 - 单击按钮后 - 我想用它填充 ListView。
这是我的列表视图:
Rectangle {
id:tblKules
anchors.horizontalCenter: parent.horizontalCenter
width: menuListaItem.width
height:300
visible:false
color: "#e5e6e8"
ListView {
id: listView
anchors.fill: parent; anchors.margins: 5
model: mainController.listaDispositivos
spacing: 1
delegate: Component {
Rectangle {
id:item
width: tblKules.width - 10
height: 30
color: tblKules.color
RowLayout {
width: parent.width
anchors.verticalCenter: parent.verticalCenter
Text {
Layout.fillWidth: true
anchors.verticalCenter: parent.verticalCenter
text: nome
font.pixelSize: 14
color: "#7f7f7f"
}
Button {
text: "Visualizar"
anchors.verticalCenter: parent.verticalCenter
style: ButtonStyle {
background: Rectangle {
color:"#f2f2f2"
}
label: Text {
color:"#064356"
font.pixelSize: 13
font.capitalization: Font.Capitalize
text: control.text
}
}
}
}
}
}
}
PropertyAnimation {
id: animationAbrirLista;
target: tblKules;
property: "visible";
to: true;
duration: 300;
}
PropertyAnimation {
id: animationFecharLista;
target: tblKules;
property: "visible";
to: false;
duration: 300;
}
}
QMainController{
id: mainController
}
我有一个名为 QMainController 的类,它控制这个视图,其中我有这个属性,我用加载的数据填充:
Q_PROPERTY(QQmlListProperty<QDispositivo> listaDispositivos READ listaDispositivos NOTIFY listaDispositivosChanged)
void QMainController::list()
{
m_listaDispositivos = m_dispositivoDAO.list();
emit listaDispositivosChanged();
}
QQmlListProperty<QDispositivo> QMainController::listaDispositivos()
{
return QQmlListProperty<QDispositivo>(this, m_listaDispositivos);
}
数据加载正常,但我无法将其显示到 listView 中。我怎样才能以反映列表发生变化的方式做到这一点?
【问题讨论】: