要在列表(小部件或模型)上显示的对象的QVector?

时间:2013-02-13 11:05:09

标签: c++ qt

所以我有一个Qvector包含一个'contact'类的对象....到目前为止联系类看起来像这样:

class contact {
        QString firstName;
        QString lastName;
        QString email;
        QString age;
        QString imgSrc;

public:
   contact();
   contact(QString fName, QString lname, QString emailAdd, QString new_Age, QString img);
   QString getPerson(); // return  "James Smith 34" which i add to listwidget   
};

这非常微不足道,我遇到的问题是什么是我以列表格式显示这些数据的最有效方式,即

亚当史密斯34

John Smith 43

我应该使用基本列表小部件吗? (考虑到我必须将信息分类为降序和降序......

还是我使用列表视图?但是哪种型号?

1 个答案:

答案 0 :(得分:1)

您将拥有子类QAbstractTableModel,以便为阅读联系信息提供模型界面,请阅读文档here。您只需要显示文本就不需要打扰代表。

默认QTableView就足够了,请记住在QAbstractTableModel中实施header data methods,否则您将无法在视图中看到列标题标签。

要提供排序功能,您需要在模型和视图之间提供自定义QSortFilterProxyModeldocs提供了如何使用它的很好的例子。

Qt MVC framework一开始可能非常令人生畏,但是一旦你理解了它的模块化结构,你就会明白你需要做些什么才能获得某些功能。它的非常强大,但有一点学习曲线。