QPainter 在控件上绘制图形,有三种方式:
1:继承 “paintEvent(QPaintEvent *event)”,直接绘制。
void QtGuiApplication1::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.setPen(QColor(255, 0, 0));
painter.drawLine(0, 0, 500, 600);
}
2:先绘制“QPixmap”,然后贴在"QLabel"上。
void QtGuiApplication1::Plot()
{
QPixmap pix(256, 256);
pix.fill(QColor(0, 0, 0, 0));
QPainter painter(&pix);
painter.setPen(QPen(Qt::red, 1, Qt::SolidLine));
painter.drawEllipse(QPoint(100, 100), 20, 50);
ui.label->setPixmap(pix);
}
3:安装事件过滤器,截取特定控件的“QEvent::Paint”事件,然后绘制。