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. Update scene
Forum Updated to NodeBB v4.3 + New Features

Update scene

Scheduled Pinned Locked Moved Solved General and Desktop
updatesceneqgraphicsview
34 Posts 3 Posters 12.3k Views 3 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.
  • mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #18

    @mandruk1331 said:

    Why do yo u give rectan.at(0) to constructor ?
    new QGraphicsRectItem(rectan.at(0));

    Try
    scene->addItem( new QGraphicsRectItem );
    and tell if that not add a new item?

    mandruk1331M 1 Reply Last reply
    0
    • mrjjM mrjj

      @mandruk1331 said:

      Why do yo u give rectan.at(0) to constructor ?
      new QGraphicsRectItem(rectan.at(0));

      Try
      scene->addItem( new QGraphicsRectItem );
      and tell if that not add a new item?

      mandruk1331M Offline
      mandruk1331M Offline
      mandruk1331
      wrote on last edited by mandruk1331
      #19

      @mrjj Ok, I managed to swap positions of the rectangles, but they swap not always, at first execution they swap on the other they don't, what could be the problem??

      void MainWindow::Shot(){
      QPointF Pos1;
      QPointF Pos2;
      Pos1 = rectan.at(5)->pos();
      Pos2 = rectan.at(6)->pos();

      rectan.at(6)->setBrush(Qt::blue);
      rectan.at(5)->setBrush(Qt::green);
      // rectan.at(5)->setBrush(Qt::blue);
      rectan.at(6)->setPos(Pos1.rx()-30,Pos1.ry());
      rectan.at(5)->setPos(Pos2.rx()+30,Pos2.ry());

      }
      Solved it)

      Mandruk1331

      1 Reply Last reply
      0
      • mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #20

        hi
        put qDebug() << "in shot:"
        in the
        MainWindow::Shot()
        to make sure its actually called mutiple times.

        mandruk1331M 1 Reply Last reply
        0
        • mrjjM mrjj

          hi
          put qDebug() << "in shot:"
          in the
          MainWindow::Shot()
          to make sure its actually called mutiple times.

          mandruk1331M Offline
          mandruk1331M Offline
          mandruk1331
          wrote on last edited by
          #21

          @mrjj Pos2 = rectan.at(6)->scenePos(); - this one return (0,0), why? I tried pos() too

          Mandruk1331

          1 Reply Last reply
          0
          • mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #22

            if pos() returns 0,0 , it must mean the items is actually at 0,0.

            mandruk1331M 1 Reply Last reply
            0
            • mrjjM mrjj

              if pos() returns 0,0 , it must mean the items is actually at 0,0.

              mandruk1331M Offline
              mandruk1331M Offline
              mandruk1331
              wrote on last edited by
              #23

              @mrjj and the other ones return 0,0. The object are unique they are all parents and have no child, I want to get the positions of each object so I could move them

              Mandruk1331

              mrjjM 1 Reply Last reply
              0
              • mandruk1331M mandruk1331

                @mrjj and the other ones return 0,0. The object are unique they are all parents and have no child, I want to get the positions of each object so I could move them

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #24

                @mandruk1331
                Something is not right.
                Unless they are all really drawn at 0,0 then pos() should return the
                actual position.
                Did you new a QGraphicsRectItem and inserted directly in the list?

                mandruk1331M 1 Reply Last reply
                0
                • mrjjM mrjj

                  @mandruk1331
                  Something is not right.
                  Unless they are all really drawn at 0,0 then pos() should return the
                  actual position.
                  Did you new a QGraphicsRectItem and inserted directly in the list?

                  mandruk1331M Offline
                  mandruk1331M Offline
                  mandruk1331
                  wrote on last edited by
                  #25

                  @mrjj yes, and in the constructor I have set theirs poistions

                  Mandruk1331

                  mrjjM 1 Reply Last reply
                  0
                  • mandruk1331M mandruk1331

                    @mrjj yes, and in the constructor I have set theirs poistions

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #26

                    Ok, then they should still have the pos, unless you swapped with a
                    item having 0,0.

                    1 Reply Last reply
                    0
                    • mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by
                      #27

                      Can I ask how any values (rects) you try to visualize?

                      mandruk1331M 1 Reply Last reply
                      0
                      • mrjjM mrjj

                        Can I ask how any values (rects) you try to visualize?

                        mandruk1331M Offline
                        mandruk1331M Offline
                        mandruk1331
                        wrote on last edited by
                        #28

                        @mrjj 10

                        Mandruk1331

                        mrjjM 1 Reply Last reply
                        0
                        • mandruk1331M mandruk1331

                          @mrjj 10

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #29

                          @mandruk1331
                          ok.
                          And did you write the sort also?

                          mandruk1331M 1 Reply Last reply
                          0
                          • mrjjM mrjj

                            @mandruk1331
                            ok.
                            And did you write the sort also?

                            mandruk1331M Offline
                            mandruk1331M Offline
                            mandruk1331
                            wrote on last edited by
                            #30

                            @mrjj yes
                            for( int i=0;i<random_numbers_.size()-1;i++){
                            for(int j=0;j<random_numbers_.size()-1;j++){

                                   if(random_numbers_[j]>random_numbers_[j+1]){
                                       count++;
                            

                            QTimer::singleShot(1000*count, [=]{ MainWindow::Shot(j);});

                                    }
                                }
                            }
                            

                            Mandruk1331

                            1 Reply Last reply
                            0
                            • mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #31

                              ok.
                              Don't really look like bubble sort.
                              :)

                              mrjjM 1 Reply Last reply
                              0
                              • mrjjM mrjj

                                ok.
                                Don't really look like bubble sort.
                                :)

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #32

                                Hi
                                I made a half assed bubble sort visualization using
                                widget painting.

                                2 things wrong with it.
                                The actual sort should rather be able to single step but instead
                                I use a delay function to slow down drawing. (not pretty)
                                So consider it concept rather than good practice.

                                That said, its meant for inspiration for your project.

                                https://www.dropbox.com/s/ob3x0uvdtbio942/bsort.zip?dl=0

                                mandruk1331M 1 Reply Last reply
                                1
                                • mrjjM mrjj

                                  Hi
                                  I made a half assed bubble sort visualization using
                                  widget painting.

                                  2 things wrong with it.
                                  The actual sort should rather be able to single step but instead
                                  I use a delay function to slow down drawing. (not pretty)
                                  So consider it concept rather than good practice.

                                  That said, its meant for inspiration for your project.

                                  https://www.dropbox.com/s/ob3x0uvdtbio942/bsort.zip?dl=0

                                  mandruk1331M Offline
                                  mandruk1331M Offline
                                  mandruk1331
                                  wrote on last edited by
                                  #33

                                  @mrjj Thanks a lot,really:-)

                                  Mandruk1331

                                  1 Reply Last reply
                                  1
                                  • A Offline
                                    A Offline
                                    Asperamanca
                                    wrote on last edited by
                                    #34

                                    I know I'm late to the party, but for what it's worth:

                                    1. There is rarely ever a need to manually update the GraphicsScene. It will automatically update parts whenever you move items (setPos), or change properties of ready-to-use items such as QGraphicsRectItem
                                    2. If you implement your own item and your own paint method, naturally the scene cannot know which properties will affect the paint and which won't. Therefore, you just call update() on the item after you changed any properties that affect the way the item looks
                                    3. If you change the boundingRect(), don't forget to call prepareGeometryChange(), otherwise you will have nasty painting effects
                                    4. Re sorting: qSort, anyone?
                                    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