내 클래스는 일련의 항목을 나타냅니다. 이러한 시퀀스는 여러 인스턴스가있을 수 있지만 항상 트리 구조의 일부로 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