Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: bombomet от Декабрь 27, 2007, 11:58



Название: paintEvent(QPaintEvent *evt) для QTextEdit
Отправлено: bombomet от Декабрь 27, 2007, 11:58
Доброе время суток. Проблема заключается в том что не получается рисовать в paintEvent(QPaintEvent *evt) в объекте класса, наследованного от QTextEdit. Вот код:

Код:
class editor : public QTextEdit
{
Q_OBJECT
...
}
...
void editor::paintEvent(QPaintEvent *evt)
{
QPainter painter(this);
painter.setBrush(QBrush(black));
painter.setPen(QPen(red));
painter.drawRect(evt->region().boundingRect());
painter.drawLine(0, 0, evt->region().boundingRect().width(), evt->region().boundingRect().height());
painter.drawLine(evt->region().boundingRect().width(), 0,0, evt->region().boundingRect().height());
}

В конструкторе задан флаг:
    setWFlags(WNoAutoErase);


Название: Re: paintEvent(QPaintEvent *evt) для QTextEdit
Отправлено: EhTemka от Январь 30, 2008, 07:09
Возможно проблема в том что QTextEdit наследуется от QAbstractScrollArea и рисование происходит на не этой арии. Мне кажется нужно рулить в сторону QAbstractScrollArea::viewport()


Название: Re: paintEvent(QPaintEvent *evt) для QTextEdit
Отправлено: pastor от Январь 30, 2008, 14:22
А на консоль (в output) выводиться что-то?

Попробуйте указать

Код:
QPainter    painter(viewport());


Название: Re: paintEvent(QPaintEvent *evt) для QTextEdit
Отправлено: bombomet от Февраль 04, 2008, 14:21
Забыл уточнить, используется Qt 3.3