Estoy intentando hacer un programa de pintura con QT 4.5, entonces estoy usando el QGraphicsView para el lienzo y QGraphicsScene para almacenar los elementos dibujados. Por alguna razón, no pude conseguir un contexto QPainter en mi propia QGraphicsView derivadaQT 4.5 - cómo obtengo un dispositivo QPainter en un QGraphicsView
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);
...
}
Sin embargo, si cambio de los DrawingCanvas a ser un hijo de QWidget, funciona. Al ver que QGraphicsView se deriva de QAbstractScrollArea, QFrame y QWidget, espero que el código funcione.
así que supongo que las preguntas son:
1) ¿Por qué es que no puedo usar paintEvent en un QGraphicsView para obtener una QPainter activa? 2) ¿Es posible que pueda obtener uno?
¡Gracias de antemano!
Acabo de pasar por este mismo proceso>.
mpen