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