[Qt-interest] How Can I Paint on QGraphicsView
Sujan Dasmahapatra
sujan.dasmahapatra at gmail.com
Tue Aug 18 11:43:41 CEST 2009
Dear Prasanth
Can we add a QGraphicsPathItem intot the scene by addItem()
m_scene.addItem(m_pathItem)
I implemented this but I am not able to see the rectangle.!! whatd could be
the reason any idea.
On Mon, Aug 17, 2009 at 5:46 PM, Prashanth Udupa
<prashanthudupa at yahoo.com>wrote:
> You can reimplement mouse event handlers in QGraphicsView to create a
> QGraphicsPathItem. See code below.
>
> #include <QtGui>
>
> class GraphicsView : public QGraphicsView
> {
> public:
> GraphicsView() : m_scene(this), m_pathItem(0) {
> m_scene.setSceneRect(-2000, -2000, 4000, 4000);
> setScene(&m_scene);
>
> setSceneRect(-2000, -2000, 4000, 4000);
> }
>
> ~GraphicsView() { }
>
> protected:
> void mousePressEvent(QMouseEvent* me) {
> QGraphicsView::mousePressEvent(me);
>
> if(!me->isAccepted() && !m_pathItem)
> {
> m_pathItem = new QGraphicsPathItem;
> m_scene.addItem(m_pathItem);
>
> QPainterPath path;
> path.moveTo(mapToScene(me->pos()));
> m_pathItem->setPath(path);
> m_pathItem->setPen(QPen(Qt::blue, 3));
> }
> }
>
> void mouseMoveEvent(QMouseEvent* me) {
> if(m_pathItem)
> {
> QPainterPath path = m_pathItem->path();
> path.lineTo(mapToScene(me->pos()));
> m_pathItem->setPath(path);
> }
> else
> QGraphicsView::mouseMoveEvent(me);
> }
>
> void mouseReleaseEvent(QMouseEvent* me) {
> m_pathItem = 0;
> QGraphicsView::mouseReleaseEvent(me);
> }
>
> private:
> QGraphicsScene m_scene;
> QGraphicsPathItem* m_pathItem;
> };
>
> int main(int argc, char** argv)
> {
> QApplication a(argc, argv);
>
> GraphicsView gView;
> gView.show();
>
> return a.exec();
> }
>
>
> HTH.
>
> / Prashanth
>
> ------------------------------
> *From:* Sujan Dasmahapatra <sujan.dasmahapatra at gmail.com>
> *To:* qt-interest at trolltech.com
> *Sent:* Monday, August 17, 2009 2:27:33 PM
> *Subject:* [Qt-interest] How Can I Paint on QGraphicsView
>
> Dear Friends
> How can I draw on the QGraphicsView using a QPainter, I want to draw
> continuously on the view when user Press mouse till Release mouse.
> I tried to implement paintEvent() method but that can be used for widget
> painting and not QGraphicsView.
> Any other means are there to paint on the QGraphicsView ?? Please help me
>
> --
> Thanks & Regards
> S. Dasmahapatra
> B.E. (Aeronautics-Aerodynamics)
> Bangalore, India
> Ph:91-9900839788
> Office:91-80-66470248
> mail id : sujan.dasmahapatra at gmail.com
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
--
Thanks & Regards
S. Dasmahapatra
B.E. (Aeronautics-Aerodynamics)
Bangalore, India
Ph:91-9900839788
Office:91-80-66470248
mail id : sujan.dasmahapatra at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090818/d1ed34b6/attachment.html
More information about the Qt-interest-old
mailing list