QT 4.5로 페인팅 프로그램을 수행하려고하므로 QGraphicsView를 캔버스에 사용하고 QGraphicsScene에서 항목을 저장합니다. 내가는 QWidget의 자식이기 위하여는 DrawingCanvas을 변경하는 경우 몇 가지 이유를 들어, 난 그냥,QT 4.5 - QGraphicsView에서 QPainter 장치를 얻는 방법
class DrawingCanvas : public QGraphicsView
{
DrawingCanvas::DrawingCanvas(QWidget * parent);
...
};
DrawingCanvas::DrawingCanvas(QWidget * parent = 0) : QGraphicsView(parent)
{
....
}
void DrawingCanvas::paintEvent(QPaintEvent& paintEventInfo)
{
// Result in painter not active
QPainter(this);
...
}
그러나 내 자신의 유래를 QGraphicsView에 QPainter를 컨텍스트를 가져올 수 없습니다, 그것은 작동합니다. QGraphicsView가 QAbstractScrollArea, QFrame, QWidget에서 파생 된 것을 보면 코드가 작동 할 것으로 기대합니다.
그래서 나는 질문이 추측 :
1) 왜이 활성화 QPainter를을 얻기 위해를 QGraphicsView에 paintEvent를 사용할 수 있다는 것입니다? 2) 가능할 수도 있나요?
미리 감사드립니다.
방금 전과 똑같은 과정을 거쳤습니다. <임시 품목을 훨씬 쉽게 그리게 만들 거라고 생각합니다. 다른 해결 방법이 있지만 ... 오버 페인트입니다. 보이지 않는 위젯을 덮어 씌울 수 있고, 실제로 원한다면 페인트 할 수 있습니다. – mpen