我来自python和pyside。因此,对于在C ++中可能出现的奇怪做法,我深表歉意。
两个问题:
我想用一组数据填充一个表,该数据当前是字典列表,如我的原始python代码所示。如何将其转换为C ++ Qt项目,以便我可以使用此数据填充tablewidget? Qt似乎没有使用像python这样的字典,而是使用了QMap。
看起来Qt使用的是QMap变体,而不是字典。如果有更有效的方法,我愿意对数据进行不同的格式化。无论采用哪种方法,都可以轻松保存到文本文件,并同时从文件中加载用户界面。值得一提的是,这些数据最终将保存到文件中并从文件中加载。这就是为什么我的旧python项目使用json作为格式。
我的目标是最终扩展我的QTableWidget子类,以添加用于从文件加载并保存到文件的方法。类似于预设。
词典列表:
[
{
"key":"SHOT",
"value":"",
"description":"Current Shot node name",
},
{
"key":"PASS",
"value":"",
"description":"Current Pass node name",
},
{
"key":"SELF",
"value":"",
"description":"Current node name",
},
{
"key":"MM",
"value":"",
"description":"Current month as integer ex: 12",
},
{
"key":"DD",
"value":"",
"description":"Current day as integer ex: 07",
}
]
cpp
#include "tokeneditor.h"
#include <QTableWidget>
#include <QVBoxLayout>
TokenEditor::TokenEditor(QWidget *parent) : QWidget(parent)
{
// Controls
QTableWidget *ui_userTokens = new QTableWidget();
// Layout
QVBoxLayout * layout = new QVBoxLayout();
layout->setMargin(0);
layout->setSpacing(0);
layout->addWidget(ui_userTokens);
setLayout(layout);
// populate table with data...
}
答案 0 :(得分:3)
如评论中所述,Qt支持Json,在下一部分中,我向您展示一个示例,此外,您还应考虑到C ++提供了处理内存的自由,因此在Qt的情况下,考虑在必要时将其消除很多时候,它是通过亲属树将责任交给Qt。
*。h
$.ajax({
url:"fetch_comment.php",
method:"POST",
data:{
"tpid" :"<?php print $id; ?>"
},
dataType:"HTML",
success:function( response )
{
$('#display_comment').html( html );
}
});
*。cpp
#ifndef TOKENEDITOR_H
#define TOKENEDITOR_H
#include <QWidget>
class QTableWidget;
class TokenEditor : public QWidget
{
Q_OBJECT
public:
explicit TokenEditor(QWidget *parent = nullptr);
~TokenEditor();
private:
QTableWidget *ui_userTokens;
};
#endif // TOKENEDITOR_H