2

QGraphicsView フォアグラウンドに QPainter アークを追加するにはどうすればよいですか。QGraphicsView.drawForeground (self、QPainter、QRectF) を見つけたのですが、使い方がわかりません。私はqtが初めてです。QGraphicsScene にアートを追加できることも知っていますが、別のシーンが必要です。または、QGraphicsView にシーン上に円弧を追加する簡単な方法はありますか? 円弧は可変でなければなりません。誰かが私を助けてくれることを願っています。

4

1 に答える 1

3

QGraphicsViewメソッドの独自のサブクラスを作成して実装する必要がありますdrawForeground()。次のコードを例として使用できます。

MyGraphicsView.h:

#ifndef MYGRAPHICSVIEW_H
#define MYGRAPHICSVIEW_H

#include <QGraphicsView>

class MyGraphicsView : public QGraphicsView
{
public:
    MyGraphicsView(QWidget * parent = 0);
    MyGraphicsView(QGraphicsScene * scene, QWidget * parent = 0);
    virtual ~MyGraphicsView();

protected:
    void drawForeground(QPainter * painter, const QRectF & rect);
};

#endif  /* MYGRAPHICSVIEW_H */

MyGraphicsView.cpp:

#include "MyGraphicsView.h"

MyGraphicsView::MyGraphicsView(QWidget * parent) :
    QGraphicsView(parent)
{
}

MyGraphicsView::MyGraphicsView(QGraphicsScene * scene, QWidget * parent) :
    QGraphicsView(scene, parent)
{
}

MyGraphicsView::~MyGraphicsView()
{
}

void MyGraphicsView::drawForeground(QPainter * painter, const QRectF & rect)
{
    int startAngle = 30 * 16;
    int spanAngle = 120 * 16;
    painter->drawArc(rect, startAngle, spanAngle);
}
于 2010-09-15T04:44:37.797 に答える