Sto tentando di eseguire un programma di disegno con QT 4.5, quindi sto utilizzando QGraphicsView per il canvas e QGraphicsScene per archiviare gli elementi disegnati. Per alcune ragioni, non riuscivo proprio a trovare un contesto QPainter nel mio QGraphicsView derivatoQT 4.5 - Come si ottiene un dispositivo QPainter in 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);
...
}
Tuttavia, se cambio le DrawingCanvas ad essere figlio di QWidget, funziona. Vedendo che QGraphicsView è derivato da QAbstractScrollArea, quindi QFrame, quindi QWidget, mi aspettavo che il codice funzionasse.
quindi credo che le domande sono:
1) Perché è che io non posso usare paintEvent in un QGraphicsView per ottenere un QPainter attiva? 2) È possibile che ne ottenga uno?
Grazie in anticipo!
Ho appena eseguito esattamente questo stesso processo>.
mpen