如何将 QPainter 弧添加到 QGraphicsView 前景。我找到了 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 回答