首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >填充QTableView表单JSON

填充QTableView表单JSON
EN

Stack Overflow用户
提问于 2014-10-01 18:34:32
回答 1查看 3.6K关注 0票数 4

我正在开发一个web服务客户端,在那里我可以获得一个JSON对象数组,并且我想用它们填充一个QTableView。JSON键应该是列标题,值​​应该是每一行数据。

JSON示例:

{"id":"1","name":"Robotina","type":"droid",“年份”:“1970”},{"id":"2","name":"Astro“,"type":"droid",”年份“:”2015“},{id”id“:”3“,"name":"Terminator","type":"droid",”2020“},{"id":"4","name":"Bender","type":"droid",“R2D2”:“3000”},{"id":"5","name":"C-3PO","type":"droid",“年份”:“1978”},{"id":"6","name":"R2D2","type":"droid",“年”:“1977”},{id:“7”,“name”:“name”,“Mazinger Z",“类型”:“机器人”、“年份”:“1987”}、{"id":"8“、”名称“:”机器人“、”类型“:”机器人“、”年份“:”1987“}、{"id":"9”、“名称”:“WALL-E”、“type”:“机械”、“年份”:“2200”}、{"id":"10“、”名称“:”EVE“、”type“:”type“、”type““年份”:“2200”}

EN

回答 1

Stack Overflow用户

发布于 2017-02-18 21:33:32

我遇到了类似的问题,因为我的Json查询返回为一个散列数组。

我在这里组装了一个QJsonTableModel:https://github.com/poulh/qjsontablemodel

代码语言:javascript
运行
复制
QJsonTableModel::Header header;
header.push_back( QJsonTableModel::Heading( { {"title","Title"},    {"index","title"} }) );
header.push_back( QJsonTableModel::Heading( { {"title","Season"},   {"index","season"} }) );
header.push_back( QJsonTableModel::Heading( { {"title","Episode"},  {"index","episode"} }) );
header.push_back( QJsonTableModel::Heading( { {"title","Air Date"}, {"index","air_date"} }) );

episodes = new QJsonTableModel( header, this );
ui->episodeTableView->setModel( episodes );

QString json = "[{\"series\":\"Black Sails\",\"season\":1,\"episode\":1,\"title\":\"I.\",\"air_date\":\"2014-01-25\"},{\"series\":\"Black Sails\",\"season\":1,\"episode\":2,\"title\":\"II.\",\"air_date\":\"2014-02-01\"}]";
QJsonDocument jsonDocument = QJsonDocument::fromJson( json );
episodes->setJson( jsonDocument );

然后,您可以通过QModelIndex检索该行的Json对象。它将为您提供整个行的Json对象,不管您单击的是哪个单元格。

代码语言:javascript
运行
复制
void TVTime::on_episodesTableView_doubleClicked(const QModelIndex &index)
{
    QJsonObject object = episodes->getJsonObject( index );
    qDebug() << object["title"];
}

如果有用的话请告诉我。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26148188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档