如何在QWidget上绘制(我表单上的元素)?
我阅读了很多教程,但没有一个涵盖我真正需要做的事情(在QWidget上绘制一些Rect)。
我创建了一个继承自QWidget的类MyFigure,甚至在paint中写了一些代码来绘制一个矩形。 然后,在我的表单创建中,我创建了MyFigure对象,然后只显示它。
它没有“工作!!!”
答案 0 :(得分:1)
QGraphicsView和QGraphicsScene适合绘画,但如果你想在QWidget上画画,你需要重新实现paintEvent:
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
class Widget : public QWidget
{
public:
explicit Widget(QWidget *parent=0);
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
};
Widget::Widget(QWidget *parent) : QWidget(parent)
{
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter;
painter.begin(this);
painter.fillRect(event->rect(), Qt::white);
QWidget::paintEvent(event);
painter.end();
}
此代码将以白色填充您的小部件。