Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 多域QMap_Qt_Qt5_Qmap - Fatal编程技术网

Qt 多域QMap

Qt 多域QMap,qt,qt5,qmap,Qt,Qt5,Qmap,我需要存储一些表类型的数据,比如QTableWidget,但没有GUI。以下代码行中的某些内容: QMap 在Qt中是否有实现这一点的方法?我的Qt版本是5.3。您似乎对一些概念不清楚 映射(在某些语言中也称为字典)是一个关联数组。它将一个键与一个值相关联,就是这样,不涉及任何“字段”,只涉及一个键和一个值 Qt中没有数据类型来为数据库表建模。对于这些通常直接使用SQL的任务,Qt支持具有各种不同数据库驱动程序的SQL 如果您不想使用数据库,而是希望拥有“原生”C++类型,可以简单地创建具有所有

我需要存储一些表类型的数据,比如
QTableWidget
,但没有GUI。以下代码行中的某些内容:

QMap


在Qt中是否有实现这一点的方法?我的Qt版本是5.3。

您似乎对一些概念不清楚

映射(在某些语言中也称为字典)是一个关联数组。它将一个键与一个值相关联,就是这样,不涉及任何“字段”,只涉及一个键和一个值

Qt中没有数据类型来为数据库表建模。对于这些通常直接使用SQL的任务,Qt支持具有各种不同数据库驱动程序的SQL

如果您不想使用数据库,而是希望拥有“原生”C++类型,可以简单地创建具有所有期望字段的对象:

struct Entry {
    QString s1, s2, s3;
    int i1, i2;
};
然后把它放进你想要的任何容器里

QList<Entry> entryList;
QVector<Entry> entryVec;
QSet<Entry> entrySet;
QList条目列表;
QVector入口向量;
QSet入口集;

您可以将容器包装在一个
QAbstractListModel
中,实现关键功能和角色,并将该模型用于表小部件或QML视图。

我认为这更像是一个“C++中有没有一种方法可以做到这一点”的问题,而不是直接引用Qt。此外,您可能应该说明此数据结构的预期效果。我猜它“像一张地图,但有更多的数据”。这意味着您仍然希望具有映射的键排序和对数键查找性能。您可以使用
QVariant
实现这一点。只需像
QMap
那样映射,就可以为每个键存储一个完整的列表。