0

所以我得到了一个 Qvector,其中包含一个“联系人”类的对象......到目前为止,联系人类看起来像这样:

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

约翰·史密斯 43

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

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

4

1 回答 1

1

您将拥有子类QAbstractTableModel以提供模型接口来读取联系信息,请在此处阅读文档。由于您只是显示文本,因此您无需打扰代表。

默认值QTableView应该足够了,记得实现表头数据方法QAbstractTableModel否则你不会在视图中看到列标题标签。

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

Qt 的MVC 框架一开始可能会让人望而生畏,但是一旦您了解了它的模块化结构,您就会清楚地知道您需要做什么才能获得某些功能。它非常强大,但有一点学习曲线。

于 2013-02-13T13:23:05.780 回答