Results 1 to 13 of 13

Thread: [qt4.1,win,g++] Using QPainter outside paintEvent()

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    5,372
    Thanks
    28
    Thanked 976 Times in 912 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    Is this a normal widget or does it use OpenGL?

  2. #2
    Join Date
    Jan 2006
    Location
    Germany
    Posts
    84
    Thanks
    7
    Thanked 2 Times in 1 Post
    Qt products
    Qt3 Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    it's a normal widget derived from qlabel:



    class PaintTest : public QLabel
    {

    public:

    PaintTest( const QString & text, QWidget * parent = 0, Qt::WFlags f = 0 )
    : QLabel(text,parent,f)
    {
    setAttribute(Qt::WA_PaintOutsidePaintEvent,true);
    }

    protected:

    void ppp()
    {
    QPainter p(this);
    // setAttribute(Qt::WA_PaintOutsidePaintEvent,true);
    QPen pen(Qt:ashLine);
    pen.setColor(Qt::red);
    // p.s0etCompositionMode(QPainter::CompositionMode_Xo r);
    p.setPen( pen );
    p.drawLine(QPoint(0,0),QPoint(50,70));
    p.drawLine(0,0,100,100);
    printf("jdhfjkdshfjkhds\n");
    fflush(stdout);
    }

    void paintEvent(QPaintEvent *e)
    {
    QLabel:aintEvent(e);

    QPainter p(this);
    p.setPen(QColor(146, 146, 146));
    p.drawRect(0, 0, width() - 5, height() - 5);

    printf("paintEvent\n");
    fflush(stdout);

    }



    virtual void mouseMoveEvent ( QMouseEvent * e )
    {

    setAttribute(Qt::WA_PaintOutsidePaintEvent, true);

    QPainter p(this);
    QPen pen;
    pen.setColor(QColor(200,100,30));
    p.setPen( pen );
    p.drawLine(QPoint(0,0),e->pos());
    p.drawLine(0,0,100,60);

    // repaint(10,10,50,60);

    printf("mouseMoveEvent\n");
    fflush(stdout);

    }

    };


    jh

  3. #3
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    5,372
    Thanks
    28
    Thanked 976 Times in 912 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    It seems to work on my system (PLD Linux, Qt 4.1.0). See the attached image.

    PS. Please, use [ code ] tags to make your code readable.
    Attached Images Attached Images

  4. #4
    Join Date
    Jan 2006
    Location
    Germany
    Posts
    84
    Thanks
    7
    Thanked 2 Times in 1 Post
    Qt products
    Qt3 Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    hm ...
    linux / win32 - OpSystem problem ?? strange.

    if anybody gets this working on win32, let me know!

    jh

  5. #5
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    5,372
    Thanks
    28
    Thanked 976 Times in 912 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    Quote Originally Posted by jh
    linux / win32 - OpSystem problem ?
    Yes, looks like a Qt bug.

    http://www.trolltech.com/developer/t...entry&id=83522

  6. #6
    Join Date
    Jan 2006
    Location
    Germany
    Posts
    84
    Thanks
    7
    Thanked 2 Times in 1 Post
    Qt products
    Qt3 Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: [qt4.1,win,g++] Using QPainter outside paintEvent()

    ok, so it's not due to my incompetence

    i'll wait till 4.1.1

    thanx for the hint.

    jh

Similar Threads

  1. QPainter reuse within a paintEvent
    By Micawber in forum Qt Programming
    Replies: 2
    Last Post: 2nd May 2008, 16:51
  2. Replies: 3
    Last Post: 27th November 2006, 09:56
  3. QPainter ouside of paintEvent with a pixmap
    By bitChanger in forum Qt Programming
    Replies: 10
    Last Post: 22nd March 2006, 19:45
  4. Replies: 7
    Last Post: 20th March 2006, 20:03

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.