Название: Рисование без QPaintEvent. Возможно? Отправлено: AAXEE от Октябрь 19, 2008, 09:31 Здравствуйте!
Моя цель из любого места программы(в main, из функции) рисовать на какой-то области. Единственное, что я нашел -это Q3Canvas- но " It is provided to keep old source code working. We strongly advise against using it in new code." Вот, что я смог сделать: Progr1 canvas.h Код: #ifndef CANVAS_H Код: #include <QtGui> Код: #include <QApplication> Такой подход к рисованию указан почти везде, но мне не понятно как это можно удобно использовать. Есть только один paintEvent, а если я хочу сначала круг, а потом квадрат нарисовать? Идем дальше: Prog2 main.cpp Код: #include <QApplication> Цитировать QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::end: Painter not active, aborted Вопрос: В последнем коде можно что-то исправить, что бы заработало? И как это сделать? Если нет, то как мне реализовать что-то вроде myCanvas->drawEllipse(100,100,50,50) из любого места программы? Где то читал, что придется создавать наследуемый классс для QPainter. Если это так, то помогите проследить как его нужно построить. Спасибо за внимание! Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: Rcus от Октябрь 19, 2008, 10:31 Если вам надо именно рисовать в определенной области, то можете почитать документацию по The Graphics View Framework
Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: shadone от Октябрь 19, 2008, 15:08 Другой вариант - в вашем видете ввести "состояние" - нечто что будет говорить ему что именно должно быть нарисовано. Еще один вариант (менее оптимальный в общем случае) - где-то в общем месте хранить QPixmap на котором рисовать откуда вздумается, а в виджете, в paintEvent рисовать этот самый pixmap.
Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: AAXEE от Октябрь 20, 2008, 15:49 Всем спасибо!
Если вам надо именно рисовать в определенной области, то можете почитать документацию по The Graphics View Framework Кажется это то что нужно.Единственное, не понятно зачем нужен QPainter, если есть QGraphicsView и QGraphicsScene. Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: panAlexey от Октябрь 20, 2008, 16:39 Единственное, не понятно зачем нужен QPainter, если есть QGraphicsView и QGraphicsScene. Это один из низкоуровневых классов для рисования. Он очень нужен :)Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: AAXEE от Октябрь 20, 2008, 20:27 Но что бы просто рисовать на форме и изменять координаты объектов на рисунке, ведь не стоит заморачиваться с QPainter?
Название: Re: Рисование без QPaintEvent. Возможно? Отправлено: lex_newton от Ноябрь 06, 2008, 15:42 Когда важна скорость отрисовки - это очень полезно. Вот сейчас, например, мне необходимо написать виджет для быстрой отрисовки графика сигнала(поигрался с QWT, не устроила скорость работы... на 250000 точек уже тормоза) у меня в среднем порядка 25000000 точек на графике будет. вот отобрази их графикс вьювом без особо заметных тормозов :]
|