2012-10-22 2 views

답변

20

(물론 QWidget에 의해 계승 됨)을 찾고있을 수도 있습니다.

+0

문자열, int 또는 다른 간단한 데이터 유형 속성을 사용하는 대신 객체 (예 : 클래스 Foo)를 속성으로 할당하고 쿼리 할 때 다시 가져올 수 있습니까? – SexyBeast

+0

나는 QT 전문가가 아니므로 잘 모르겠습니다. 그러나 상속 된 타입을 생성하는 아래에 게시 한 솔루션은 임의의 객체에서 확실히 작동합니다. "Data"를 "Foo"로 간단하게 대체 할 수 있습니다. –

12

QT 전문가가 아니지만 QWidget에서 상속 받고 정수가있는 클래스를 만들지 않는 이유는 무엇입니까? 그래서 같이 :

class MyDerivedWidget : public QWidget 
{ 
    public: 
    MyDerivedWidget(); 

    private: 
    Data *myUserData; 
}; 

또는 당신이 setUserData 체크 아웃에게 마지막 게시물 here를 사용하여 주장합니다.

+0

명시 적으로 MyDerivedWidget (QWidget parent = 0) {}을 사용하면 간단하고 효과적이지만 그래도 조금 해킹하는 소리가 들리 겠지만 유용한 대답이므로 제가 투표했습니다. –

+0

IMO,이 두 답변 중 가장 해커입니다. QWidget에 데이터를 저장하려면 (vs 일반 구조체를 사용하는 것보다) 적절한 방법을 사용하여 원하는 클래스를 상속하고 더 많은 기능을 추가하고 '올바르게'수행하십시오. 상속을 통해 접근자를 추가하면 표준 QWidget을 추가 임의 속성으로 전달하는 것보다 더 유용하게 사용할 수 있습니다. – g19fanatic

+6

@ g19fanatic, 정중하게 동의하지 않음 (라이브러리 디자이너가 내 라이브러리에 있습니다. 그렇지 않으면'setProperty()'가 존재하지 않을 것이다). 때로는 그것을 얻기 위해 전체 서브 클래스를 설계하고 유지할 필요없이 인스턴스와 연관된 간단한 "데이터 백"을 갖는 것이 매우 편리 할 수 ​​있습니다. –

관련 문제