我正在尝试用QPainter
类绘制一些形状并将其保存到磁盘。据我所知,最简单的方法是使用QPainter
绘制到 aQPixmap
中,通过 a 在像素图中可视化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() 但它没有改变任何东西..
编辑:
应该是动画。我通过一个 QTimer 获得动画工作,该 QTimer 每隔 n 毫秒调用一次绘图函数(不是答案所建议的paintEvent)