2010-04-20 3 views
1

Fred here에 표시된 것처럼 사용자 지정 QGraphicsItem 단추를 만들려고합니다. 그가 올린 코드는 here입니다.사용자 지정 QGraphicsItems 컴파일 및 "개체가 비공개"오류를 제공합니다

  • /usr/include/qt4/QtGui/qgraphicsitem.h 'QGraphicsItem :: QGraphicsItem (const를 QGraphicsItem & : 나는 시도하고 나는 다음과 같은 두 가지 오류를 얻을 수있는 코드를 컴파일 할 때

    문제는) ') QObject를 :: QObject를이 (CONST가 &를 QObject를'

  • 이 /usr/include/qt4/QtCore/qobject.h
    이 비공개 ' 개인
입니다 0

다음은 위의 샘플과 본질적으로 동일한 코드 단편입니다. 오류는 클래스 감속에 있습니다. 흥미롭게도 다른 샘플은 here과 같이 잘 동작한다. 그 샘플 코드는 here입니다.

어떤 아이디어가 잘못 되었나요? 미리 감사드립니다.

+0

"button.h : 31 : Error : Undefined interface"라는 오류가 발생합니다. Qt 4.5.2를 사용하고 있습니다. 4.6이 필요합니까? – Troubadour

+0

@Troubadour, 나는 작품을 지적하면서 v4.5.0과 두 번째 샘플을 사용하고있다. 따라서 v4.5.2에서 작동해야합니다. 당연히 나는이 오류를 받고 있는데, 이것에 대해 조언을해야하는지 확신 할 수 없다. :) – bahree

+0

감사. 다른 샘플과 실제로 같은 장소의 다른 샘플은 모두 나를 위해 잘 만듭니다. 아마도 Qt 버전 차이가 다른 오류의 원인 일 수 있습니다. 나는 31 번째 줄에서 Q_INTERFACES 매크로를 제거하면 예제가 제대로 빌드되지만 두 가지 오류가 모두 발생하는 이유를 모르겠다. 물론 좋은 생각인지 아닌지 ... – Troubadour

답변

1

이러한 오류는 버튼 개체를 복사하려는 것 같습니다. Compiler는 자동으로 MyButton 복사 생성자를 생성하려고 시도하고 QObject (사용자의 단추 기반)의 복사 생성자가 private이기 때문에 실패합니다. 소스 파일 이름이 메시지 다음 줄 번호

note: synthesized method 'MyButton::MyButton(const MyButton&)' first required here 

: 오류 외에 당신은 또한 같은 물건을 볼 수 나열된. 이 메시지가 표시되지 않으면 다음을 추가하십시오.

private: 
    Q_DISABLE_COPY(MyButton) 

MyButton 클래스 정의에 추가하십시오. 그러면 다음과 같이 표시됩니다.

error: 'MyButton::MyButton(const MyButton&)' is private within this context 
+0

안녕하세요, 이전에 핑을하지 않은 것을 유감스럽게 생각합니다. Q_DISABLE_COPY를 추가해도 문제가 해결되지 않았습니다. 위에서 Q_INTERFACES 매크로를 제거하면 주석이 고정되었습니다. 또는 그렇게 보인다. :) – bahree

관련 문제