0

ControlIconというカスタムクラスのQListを作成しています。ControlIconsを作成し、それらにメンバー変数をロードしてから、リストに追加します。追加コードは次のとおりです。

this->cueList.append(firstOne);

QListの宣言は次のとおりです。

QList< ControlIcon *> cueList;

追加の直後に中断すると、追加されたばかりのControlIconがメンバーでいっぱいで、正常に表示されていることがわかります。リストを見ると、追加された(そして、ControlIconを追加する)ControlIconにはメンバーがまったくありません。以前にカスタムオブジェクトのQListを作成したことがあるので、非常に混乱しています。誰か助けてもらえますか?

4

3 に答える 3

0

カスタムクラスは代入可能である必要がありますつまり、デフォルトコンストラクター、コピーコンストラクター、および代入演算子を提供する必要があります。そうしないと、このような奇妙なことが起こる可能性があります。

于 2011-02-08T15:29:50.310 に答える
0

cueListオブジェクトへのポインタが含まれていますが、それらのオブジェクトControlIconを作成または保持する責任はありません。ControlIconどのようにしてポインタを取得しましたfirstOneか?スタック上の何かを指している場合、後でそれを使用しようとすると、そのオブジェクトは無効になります。で作成された場合はnew、を使用してクリーンアップするまで有効ですdelete

于 2011-02-08T15:30:48.733 に答える
0

リストのデータ型をSerialController(ControlIconの子)に変更しました。これは、リストに追加しようとしていたものであり、正常に機能します。他のタイプのコントローラーがあるので、これは本当に厄介ですが、今のところは機能する必要があると思います。

于 2011-02-09T15:46:32.813 に答える