Название: Рисование без затирания того что уже нарисовано Отправлено: kilanoff от Февраль 11, 2011, 12:48 Народ, помогите разобраться, использую paintEvent
надо реализовать что-то вроде paintbrush как в винде т.е. например выбрал я карандаш, и что бы можно было рисовать точки, которые бы оставались на холсте вот так сделано в Delphi Pascal object.canvas.drawPoint(x,y) ну типа того а как в Qt сделать такое, не получается. помогите пожалуйста Название: Re: Рисование без затирания того что уже нарисовано Отправлено: kilanoff от Февраль 11, 2011, 12:52 извиняюсь, забыл дописать, что рисование происходит на виджете
QLabel может заменить его на другой объект, на котором это лучше сделать? Название: Re: Рисование без затирания того что уже нарисовано Отправлено: _govorilka от Февраль 11, 2011, 13:13 Прочитай про класс QPicture. Рисуй на нём, а потом QPicture рисуй на виджете.
Про то как рисовать на виджете написано здесь: http://www.prog.org.ru/topic_13567_0.html (http://www.prog.org.ru/topic_13567_0.html) Название: Re: Рисование без затирания того что уже нарисовано Отправлено: kilanoff от Февраль 12, 2011, 14:10 Спасибо за ответы, да решил проблему:
appp = QLabel widget Код: void appp::paintEvent(QPaintEvent * /* event */) инициализирую Код: void appp::initNewScreenShot(int xx, int yy, int ww, int hh) а рисую: Код: QPainter p1( theImage ); Название: Re: Рисование без затирания того что уже нарисовано Отправлено: _govorilka от Февраль 12, 2011, 18:05 QImage* лучше заменить на QImage, т.к. он использует Implicit Sharing http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html (http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html)
Замена QImage на QPicture даст экономию в памяти, т.к. ты не будешь выделять еще один буфер в памяти под картинку. Если тебе все же нужен буфер, то здесь лучше подойдёт QPixmap, он оптимизирован для этого. Название: Re: Рисование без затирания того что уже нарисовано Отправлено: kilanoff от Февраль 12, 2011, 20:19 QImage* лучше заменить на QImage, т.к. он использует Implicit Sharing http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html (http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html) Замена QImage на QPicture даст экономию в памяти, спасибо! так наверное будет лучше, попробую |