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から派生しているのを見て、私はコードがうまくいくと期待しています。
だから私は、質問があると思います:なぜ私はアクティブQPainterのを取得するためにQGraphicsViewでpaintEventを使用することができないということです)
1? 2)私は1つを得ることができる可能性はありますか?
ありがとうございます!
私はちょうどこの全く同じプロセスを経験しました。<あなたは彼らが一時的なアイテムをはるかに簡単に描くように思うでしょう。 もう1つの解決策があります...オーバーコーティング。本当にしたい場合は、不可視のウィジェットを重ねてペイントすることができます。 – mpen