私のクラスは一連の項目を表します。このようなシーケンスのインスタンスは多数ありますが、ツリー構造の一部としてGUIに常に表示されます。シーケンスは、ツリーにデータを埋め込む役割を果たし、ツリーには独自のアイコンがあります。アイコンはすべてのシーケンスのために同じであるので、私はそれが静的作っ:QtのQIconのインスタンスを自分のクラスの静的メンバーとして持つことは可能ですか?
class Sequence
{
public:
Sequence() { }
/* ... */
protected:
QList<SeqItem *> items_;
static const QIcon treeIcon_;
};
const QIcon Sequence::treeIcon_ = QIcon(":/icons/seq.png");
問題は、私はアプリケーションを実行すると、それはとクラッシュするということである。
QPixmapの:QPaintDevice前にはQApplicationを構築する必要があります。
おそらく静的メンバーがメインウィンドウの前に作成されている可能性があります。だから私の質問は:私のクラスの静的メンバーとしてQIconsを持つことは可能ですか?
多すぎます。私はアイコンのパスを持つ静的なQStringsを持っているだろうと思うし、これらのパスからツリー充填機能でそれらをオンザフライで作成します。とにかくそれは時間が重要ではないし、あなたが指摘しているように、これはややばかげて不確実である。 – neuviemeporte
ツリー充填機能では常に静的にすることができます。おそらく、ペイントデバイスはQIconの破壊ではなく、作成時にのみ使用されているので、おそらく上質です。 – Pete
それはさらに良い考えです:) – neuviemeporte