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...

Graphics classes troubles...

Scheduled Pinned Locked Moved General and Desktop
14 Posts 4 Posters 4.5k Views
  • 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.
  • 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