具有多场的QMap

时间:2015-04-15 17:26:40

标签: qt qt5 qmap

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

QMap<QString, QString, int, QString, int>

有没有办法在Qt中实现这一目标?我的Qt版本是5.3。

1 个答案:

答案 0 :(得分:1)

你似乎对一些概念不清楚。

地图(在某些语言中也称为字典)是一个关联数组。它将一个键与一个值相关联,关于它,没有&#34;字段&#34;无论如何,只是一个关键和一个价值。

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

如果您不想使用数据库,而是希望拥有&#34; native&#34;在C ++类型中,您只需创建一个包含所有所需字段的对象:

struct Entry {
    QString s1, s2, s3;
    int i1, i2;
};

然后将它放入你想要的任何容器中。

QList<Entry> entryList;
QVector<Entry> entryVec;
QSet<Entry> entrySet;

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