私のqtアプリでは、QTreeWidgetのコンテンツを設定する前に、このオブジェクトを埋めました:
QList<QTreeWidgetItem*> items;
私はこの方法で QList を埋めます:
QVariant qv; // I need this for "attaching" to the item my linuxPackage object
qv.setValue(linuxPackage);
packRow->setData(1, Qt::UserRole,qv); // packRow is my own object inherited from QTreeWidgetItem, I "put" the QVariant into it
items.append(packRow); // then I put my item into the QList
作業の最後に、私の QList にはほぼ 1000 の項目があります。
私はそれらを繰り返し処理する必要があり、各項目について、この(テスト済みで機能している)方法で「linuxPackage」データを取得する必要があります。
Pkg linuxPackage = this->data(1,Qt::UserRole).value<Pkg>(); // Pkg is my own class for the linuxPackage object
だから、私はこの方法で必要なデータを抽出しようとしてきました:
QList<QTreeWidgetItem*>::iterator iter;
for (iter = items.begin(); iter != items.end(); ++iter){
Pkg pack = iter->data(1,Qt::UserRole).value<Pkg>();
}
しかし、何も機能しません。プログラムをコンパイルすることさえできません。ヘルプ!:D