クラスで何らかの形を描き、QPainter
それをディスクに保存しようとしています。私が知る限り、最も簡単な方法は を使用QPainter
して に描画し、 をQPixmap
介してピックスマップで視覚化しQLabel
、 を使用することQPixmap::save
です。
しかし、このテストを実行すると、QWidget 内に小さなブラック ボックスしか表示されません。
MyWidget::MyWidget()
{
std::cout << "MyWidget > ." << std::endl;
l = new QLabel();
l->setParent(this);
pixmap = new QPixmap(460, 480);
painter = new QPainter(pixmap);
}
MyWidget::~MyWidget()
{
delete pixmap;
delete painter;
}
void MyWidget::paintEvent(QPaintEvent *event)
{
std::cout << "dudee" << std::endl;
painter->begin(pixmap);
painter->drawLine(1,1,100,100);
QPen myPen(Qt::black, 2, Qt::SolidLine);
painter->setPen(myPen);
painter->drawLine(100,100,100,1);
painter->setRenderHint(QPainter::Antialiasing, true);
painter->setPen(QPen(Qt::black, 3, Qt::DashDotLine, Qt::RoundCap));
painter->setBrush(QBrush(Qt::green, Qt::SolidPattern));
painter->drawEllipse(200, 80, 400, 240);
painter->end();
l->setPixmap(*pixmap);
}
l->update() をいくつか追加しようとしましたが、何も変わりません..
編集:
アニメーションにする必要があります。nミリ秒ごとに描画用の関数を呼び出すQTimerを介してアニメーション作業を取得します(答えが示唆するようにpaintEventではありません)