我要发一封信
QJsonArray
netlib.h
void discoveryResultChanged(const QJsonArray jsonArray);
netlib.cpp
QByteArray answer_ba = reply->readAll();
QJsonDocument answer_json_doc = QJsonDocument::fromJson(answer_ba);
QJsonObject answer_json_obj = answer_json_doc.object();
QJsonArray answer_json_array = answer_json_obj["printers_array"].toArray();
qDebug() << __func__ << "JSON array: " << answer_json_array;
emit discoveryResultChanged(answer_json_array);
*.qml
ColumnLayout {
id: printersColumn
width: parent.width
spacing: 8
Layout.bottomMargin: 8
Layout.topMargin: 8
visible: !netlib.discoveryInProgress
RowLayout {
width: parent.width
ComboBox {
id: printers
width: parent.width
anchors.margins: 4
textRole: "name"
}
Connections {
target: netlib
onDiscoveryResultChanged: {
printers.model = jsonArray // ComboBox model is set to QJsonArray
}
}
}
RowLayout {
TextArea {
text: printers.currentText
// How to access `printers` ComboBox data model here?
// I need to access key/values of QJsonArray ... how?
}
}
}
样本
QJsonArray
是
QJsonArray([{“ip”:“10.10.2.22”,“名称”:“N0”,“端口”:4000,“配置文件数组”:[{“配置文件”:“0 blah blah blah”,“id”:0,“名称”:“配置文件0-0”},{“配置文件1 blah blah blah”,“id”:1,“名称”:“配置文件0-1”},{“配置文件2 blah blah blah”,“id”:2,“名称”:“配置文件0-2”},{“ip”:“192.168.1.1”,“名称”:“n1,“名称”:“配置文件1-0”},{“配置文件”:“1布拉布拉布拉布拉”,“id”:1,“名称”:“配置文件1-1”},{“配置文件”:“2布拉布拉布拉布拉布拉布拉布拉布拉”,“id”:2,“名称”:“配置文件1-2”}]},{“ip”:“172.16.1.1”,“名称”:“n2”,“端口”:4003,“配置文件数组”:[{“配置文件0布拉布拉布拉布拉布拉布拉布拉布拉布拉”,“id”:0,“名称”:“配置文件2-0},{“配置文件1布拉布拉布拉布拉布拉布拉”,“id”:1”,“名称”:“配置文件2布拉布拉布拉布拉布拉布拉布拉”{,“id”:2,“名称”:“概要文件2-2”}]}])
如何访问组合框模型的键/值
QJsonArray
从内部
TextArea
在我的QML代码上?