widgetクラスがあり、このクラスの中でQPainterを汎用的に宣言
することは出来ますか?
注)現在は、paintEventの中で”QPainter painter”で宣言しています。つまり、paintEventの中で毎回宣言し、破棄しています。
以下は、Widgetクラスのヘッダーと実装部を添付しました。
以上、宜しくお願いします。
質問の背景:
C#等はキャンバスの概念があり、このキャンバスに追加的に描画を行いますが、Qtにはこの概念が見当たりません。
//widget.h===============================
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
//#include <QPainter>
//! [0]
class Helper;
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(Helper helper, QWidget parent);
public slots:
void animate();
//QPainter painter; //
protected:
void paintEvent(QPaintEvent *event);
private:
Helper *helper;
int elapsed;
};
//widget.cpp=================================
Widget::Widget(Helper *helper, QWidget *parent)
: QWidget(parent), helper(helper)
{
//QPainter painter;
elapsed = 0;
setFixedSize(200, 200);
}
void Widget::paintEvent(QPaintEvent *event)
{
//QPainter painter;
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
helper->paint(&painter, event, elapsed);
painter.end();
}
あなたの回答
tips
プレビュー