Russian Qt Forum
Ноябрь 24, 2024, 09:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: paintEvent(QPaintEvent *evt) для QTextEdit  (Прочитано 4352 раз)
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);
« Последнее редактирование: Январь 30, 2008, 14:19 от pastor » Записан
EhTemka
Гость
« Ответ #1 : Январь 30, 2008, 07:09 »

Возможно проблема в том что QTextEdit наследуется от QAbstractScrollArea и рисование происходит на не этой арии. Мне кажется нужно рулить в сторону QAbstractScrollArea::viewport()
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Январь 30, 2008, 14:22 »

А на консоль (в output) выводиться что-то?

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

Код:
QPainter    painter(viewport());
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
bombomet
Гость
« Ответ #3 : Февраль 04, 2008, 14:21 »

Забыл уточнить, используется Qt 3.3
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.