Помогите разобраться с QPainter! Начальные условия: есть некая форма, созданная в Designere, в которой есть widget Widget. Теперь я хочу что-нибудь нарисовыть, но безуспешно...
А в консоль ошибки не сыпятся о том, что рисовать на чужой виджет нельзя?
в консоль выводит это:
QPainter::begin: Widget painting can only begin as a result of a paintEvent
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::setWindow: Painter not active
В designer-e нажми по размещенному виджету(QWidget) правой кнопкой мыши. Выбери пункт Promote to.... В promoted class name введи название класса, например, MyWidget.
В проекте создаешь два файла mywidget.h и mywidget.cpp (не забываем добавить их в .pro)
#include <QtGui/QWidget>
class QPaintEvent;
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
protected:
void paintEvent(QPaintEvent *event);
};
#include <QtGui/QPaintEvent>
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
}
void MyWidget:: paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(Qt::blue);
painter.setBrush(QBrush(Qt::red));
painter.draw.....
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)