2010-05-30 5 views
0

QPainter를 사용하여 직사각형을 그리는 방법을 알아 냈습니다. 이제 사용자가 클릭하면 마우스 포인터가있는 곳에 1x1 사각형이 그려지는 그리기 영역이 필요합니다. 이를 위해 clicked() 신호를 지원하는 투명한 Qt 위젯이 필요하다고 가정합니다.클릭을 잡을 수있는 일반적인 투명한 Qt 위젯?

투명 위젯을 어떻게 만들 수 있습니까? 아니면 내가 사용할 수있는 다른 것이 있습니까? 아마도 나는 창문의 clicked() 신호만을 사용할 수 있습니까?

답변

0

정말 투명 위젯이 필요하지 않습니까?

당신이해야 할 모든

은 위젯

protected: 
    void mousePressEvent(QMouseEvent *event); 

을 구현하고 사각형을 그립니다입니다.

Qt와 함께 제공되는 scribble example을 살펴보십시오.

+0

도움이 되긴하지만이 튜토리얼은 내가 필요로하는 것 이상으로 길어서 다소 혼란 스럽다. DrawingPad의 클래스 정의를 포함하는'drawingPad.cpp'와'drawingPad.h'라는 두 개의 파일을 프로젝트에 추가했습니다. MainWindow 생성자에 이것을 추가했습니다 :'drawingPad = new DrawingPad; setCentralWidget (drawingPad);'그런 다음이 오류가 발생합니다. "drawingPad가이 범위에서 선언되지 않았습니다." 가능한 원인은 무엇입니까? drawingPad.h를 포함했습니다. Qt Designer에는 커스텀 위젯을 가져 오기위한 특별한 기능이 있습니까? – Pieter

+0

http://doc.qt.nokia.com/4.6/designer-creating-custom-widgets.html 나는 단지 추측 할 수 있지만 어쩌면 당신은'DrawingPad * drawingPad = new DrawingPad; ' – Anton

+0

을 필요로 할 것입니다. 이제 "collect2 : ld가 1 종료 상태를 반환했습니다 "오류가 발생했습니다. – Pieter