Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Graphics classes troubles...
Forum Update on Tuesday, May 27th 2025

Graphics classes troubles...

Scheduled Pinned Locked Moved General and Desktop
14 Posts 4 Posters 4.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    Peppy
    wrote on last edited by
    #1
    1. I have an inherited class QGraphicsView and implemented paintEvent, why does debugger write: QPainter::begin: Paint device returned engine == 0, type: 1 ??
      This is whole code:
      @void GraphicsView::paintEvent(QPaintEvent *)
      {
      QPainter painter(this);
      painter.setBrush(QBrush(QColor(255,127,0)));
      painter.drawRect(this->sceneRect());
      }@
      And I am not drawing outside from paintEvent method.
    2. Why I have scollbars in my GraphicsView window ? How to remove them?
    1 Reply Last reply
    0
    • L Offline
      L Offline
      leon.anavi
      wrote on last edited by
      #2

      [quote author="Peppy" date="1304202309"]2. Why I have scollbars in my GraphicsView window ? How to remove them?[/quote]

      "QGraphicsView":http://doc.qt.nokia.com/latest/qgraphicsview.html inherits "QAbstractScrollArea":http://doc.qt.nokia.com/latest/qabstractscrollarea.html so you can permanently disable the scrollbars by calling the following methods (please note the arguments):

      @setVerticalScrollBarPolicy ( Qt::ScrollBarAlwaysOff );
      setHorizontalScrollBarPolicy ( Qt::ScrollBarAlwaysOff );@

      Best regards,
      Leon

      http://anavi.org/

      1 Reply Last reply
      0
      • P Offline
        P Offline
        Peppy
        wrote on last edited by
        #3

        Thanks, and my first problem? What do you think?

        1 Reply Last reply
        0
        • L Offline
          L Offline
          leon.anavi
          wrote on last edited by
          #4

          [quote author="Peppy" date="1304202756"]Thanks, and my first problem? What do you think?[/quote]

          Honestly I did not understand what exactly is the problem. Btw what are you trying to achieve?

          If you want just to set a background color it would be easier to use:

          @setStyleSheet("background-color:rgb(255,127,0);");@

          QGraphicsView inherits QAbstractScrollArea, which inherits QFrame, which inherits QWidget so you should be able to call setStyleSheet :)

          Cheers,
          Leon

          http://anavi.org/

          1 Reply Last reply
          0
          • P Offline
            P Offline
            Peppy
            wrote on last edited by
            #5

            I have this code:
            @
            QGraphicScene scene;
            scene.addRect(QRect(0,0,1000,700));

            GraphicsView gv(&scene);
            gv.show();
            @
            And GraphicView class:
            @
            class GraphicsView : public QGraphicsView
            {
            public:
            explicit GraphicsView(QGraphicsScene* scene) : QGraphicsView(scene) { }

            protected:
            void paintEvent(QPaintEvent*);
            };
            void GraphicsView::paintEvent(QPaintEvent*)
            {
            QPainter painter(this);
            painter.setBrush(QBrush(QColor(255,127,0)));
            painter.drawRect(this->sceneRect());
            }
            @
            Problem is, that debugger writes messages as I wrote above, and it doesn't draw anything....

            1 Reply Last reply
            0
            • L Offline
              L Offline
              leon.anavi
              wrote on last edited by
              #6

              Please check "this thread at stackoverflow":http://stackoverflow.com/questions/1117847/qt-4-5-how-do-i-get-a-qpainter-device-in-a-qgraphicsview the proposed solution is to use "viewport()":http://doc.qt.nokia.com/latest/qabstractscrollarea.html#viewport instead of this:

              @QPainter painter(viewport());@

              Best regards,
              Leon

              http://anavi.org/

              1 Reply Last reply
              0
              • P Offline
                P Offline
                Peppy
                wrote on last edited by
                #7

                Great! It works! Oh my God, it should be in docs...

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  leon.anavi
                  wrote on last edited by
                  #8

                  Cool :) So now both issues are solved thanks to the viewport!

                  http://anavi.org/

                  1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    Peppy
                    wrote on last edited by
                    #9

                    Yes, but this important thing should be in docs, I think. :)

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      leon.anavi
                      wrote on last edited by
                      #10

                      [quote author="Peppy" date="1304204584"]Yes, but this important thing should be in docs, I think. :)[/quote]

                      You can add a wiki howto article about this issue here at Qt Developer network :)

                      http://anavi.org/

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        deimos
                        wrote on last edited by
                        #11

                        You can also reimplement "QGraphicsScene::drawBackground":http://doc.qt.nokia.com/latest/qgraphicsscene.html#drawBackground

                        or take a look also at "backgroundBrush":http://doc.qt.nokia.com/latest/qgraphicsscene.html#backgroundBrush-prop

                        regards

                        1 Reply Last reply
                        0
                        • P Offline
                          P Offline
                          Peppy
                          wrote on last edited by
                          #12

                          When I used backgroundBrush (image via QBrush class) image was repeating on all axis. :)...

                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            deimos
                            wrote on last edited by
                            #13

                            yes :)
                            you can reimplement drawbackground like this:

                            @void GraphicsView::drawBackground(QPainter *painter,
                            const QRectF &f)
                            {
                            Q_UNUSED(f);
                            QRectF rect;
                            rect=this->mapToScene(0,0, this->width(), this->height()).boundingRect();
                            painter->fillRect( rect, QColor(255,127,0));
                            }@

                            1 Reply Last reply
                            0
                            • Z Offline
                              Z Offline
                              ZapB
                              wrote on last edited by
                              #14

                              [quote author="Peppy" date="1304204584"]Yes, but this important thing should be in docs, I think. :)[/quote]

                              QGV inherits QAbstractScrollArea and the docs there tell you all about the distinction between the viewport and the scroll area. Always a good idea to read the docs for the class(es) that the class of interest publically inherits too.

                              Nokia Certified Qt Specialist
                              Interested in hearing about Qt related work

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved