0

これで、'contact' クラスのオブジェクトを含む 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

ジョン・スミス 43

基本的なリスト ウィジェットを使用する必要がありますか?? (情報を昇順と降順でソートする必要があることを考慮して...

またはリストビューを使用しますか?? しかし、どのモデル??

4

1 に答える 1

1

QAbstractTableModel連絡先情報を読み取るためのモデルインターフェイスを提供するためのサブクラスがあります。こちらのドキュメントをお読みください。テキストを表示しているだけなので、デリゲートを気にする必要はありません。

デフォルトで十分です。ヘッダーデータメソッドQTableView実装することを忘れないでください。そうしないと、ビューに列ヘッダーラベルが表示されません。QAbstractTableModel

QSortFilterProxyModel並べ替え機能を提供するには、モデルとビューの間にカスタムを提供する必要があります。ドキュメントはそれを使用する方法の素晴らしい例を提供します。

QtのMVCフレームワークは、最初は非常に困難な場合がありますが、モジュール構造であることを理解すると、特定の機能を取得するために何をする必要があるかが明らかになります。それは信じられないほど強力ですが、少し学習曲線があります。

于 2013-02-13T13:23:05.780 に答える