我需要存储一些表类型的数据,如QTableWidget
但没有 GUI。类似于以下代码的内容:
QMap<QString, QString, int, QString, int>
有没有办法在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;
您可以将容器包装在QAbstractListModel
中,实现关键功能和角色,并将该模型用于表小部件或QML视图。