2013-07-24 3 views
1

내부 구조체의 멤버에 액세스하는 방법이 같은 구조체가있다 컴파일 오류 :은 QList

void FlowLayout::add(QLayoutItem *item) 
{ 
    itemList.item = item; 
    itemList.shown = true; 
    itemList.append(itemlist); 
} 

오류 :

class "QList<FlowLayout::Flow *>" has no member "item"

회원에게 액세스하여 목록에 추가하는 방법은 무엇입니까?

답변

2

오류 메시지는 충분히 명확합니다. QList에는 실제로 item 구성원이 없습니다. Flow 오브젝트를 작성하고 채우고 목록에 넣으십시오.

void FlowLayout::add(QLayoutItem *item) 
{ 
    Flow flow; 
    flow.item = item; 
    flow.shown = true; 
    itemList.append(flow); 
} 
+0

Qt에서 이러한 방식으로 자동 오브젝트로 작업하는 것은 좋지 않습니다. 그 목록은'QList '이어야하고 객체는'new'로 생성되어야합니다. –

+1

왜 나쁜 생각인지 설명해주십시오. –

+0

'흐름'은 QObject가 아닙니다. 무시하세요. (그러나 어쨌든 질문에 대답하기 위해서 : 부모는 자식에게'delete'를 호출하기 때문에 때때로 Qt 위젯은'delete'를 호출합니다.) –