Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Vertical slider again

    General and Desktop
    3
    18
    2703
    Loading More Posts
    • 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
      Payx last edited by

      Hello,

      My topic is mark as solved but i got a new error :

      i have :

      Hello guys,

      i want to use a vertical slider to increase a variable

      void MainWindow::on_verticalSlider_sliderMoved(int position)
      {
          ui->verticalSlider->setRange(1,50);
      z++;
      }
      

      but as i didn't expected, is that whenever the slider moove he will increment the variable z.

      But i want that the slider decrease the variable z when he go down.
      and increase when he go up !

      thanks for your help

      A 1 Reply Last reply Reply Quote 0
      • SGaist
        SGaist Lifetime Qt Champion last edited by

        Hi,

        Do you mean you want z to have the same value as the slider ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply Reply Quote 0
        • P
          Payx last edited by

          Yes exactly

          1 Reply Last reply Reply Quote 0
          • SGaist
            SGaist Lifetime Qt Champion last edited by

            Then it's simply: z = position;

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply Reply Quote 1
            • A
              ambershark @Payx last edited by ambershark

              void MainWindow::on_verticalSlider_sliderMoved(int position)
              {
              ui->verticalSlider->setRange(1,50);
              z++;
              }

              Well you definitely don't need to call setRange more than once on a slider. So remove that line.

              Then what you need is:

              void MainWindow::on_verticalSlider_sliderMoved(int position)
              {
                 z = position;
              }
              

              Edit: @SGaist beat me to it. ;)

              My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

              1 Reply Last reply Reply Quote 1
              • P
                Payx last edited by

                Thank you,

                but i don't need a number for my "z" ?
                How do we know the number of my variable ?

                1 Reply Last reply Reply Quote 0
                • SGaist
                  SGaist Lifetime Qt Champion last edited by

                  What exactly do you want to do with z ?

                  What is your goals ?

                  That would help us understand what you are trying to achieve.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply Reply Quote 0
                  • P
                    Payx last edited by

                    I have a slider who determine the value of "z"

                    i thought use a setrange for the slider (1 to 50)

                    Like if the vertical slider is at the bottom, the value of z will be 1
                    and if the slider is at the top the value of z will be 50

                    1 Reply Last reply Reply Quote 0
                    • SGaist
                      SGaist Lifetime Qt Champion last edited by

                      Call setRange in your MainWindow constructor.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply Reply Quote 0
                      • P
                        Payx last edited by

                        Call SetRange ? i don't undertsand

                        1 Reply Last reply Reply Quote 0
                        • SGaist
                          SGaist Lifetime Qt Champion last edited by

                          That line: ui->verticalSlider->setRange(1,50); you should call it in the MainWindow constructor.

                          And since you are using a Designer based interface you can also set the min and max values in Designer and avoid the setRange call.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply Reply Quote 0
                          • P
                            Payx last edited by Payx

                            So the z=position;
                            i keep it ?

                            Sorry but even the "main constructor" it's the .cpp ? or .h ?

                            1 Reply Last reply Reply Quote 0
                            • SGaist
                              SGaist Lifetime Qt Champion last edited by

                              Well... Yes if you use it somewhere else.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              1 Reply Last reply Reply Quote 0
                              • P
                                Payx last edited by

                                Yes i use the z somewhere else

                                thats why i needed a range 1 - 50

                                1 Reply Last reply Reply Quote 0
                                • SGaist
                                  SGaist Lifetime Qt Champion last edited by

                                  Where exactly ? Depending on that, there's not even a need for z. You can get the value directly from the slider.

                                  Interested in AI ? www.idiap.ch
                                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    Payx last edited by

                                    It depends where i use my "z" ?

                                    How ?

                                    A 1 Reply Last reply Reply Quote 0
                                    • P
                                      Payx last edited by

                                      thank's anyway,

                                      3 h on it, i had time to ask help

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        ambershark @Payx last edited by

                                        @Payx said in Vertical slider again:

                                        It depends where i use my "z" ?

                                        How ?

                                        What do you use z for? Also side note, that's a horrible name for a variable locally much less one that is used at a class or global level.

                                        What @SGaist is saying is you can always get the value of the slider from the slider itself without saving it to a variable. The function ui->verticalSlider->sliderPosition() will always contain the same value that your z would.

                                        So with that in mind you can get rid of that whole overridden function and just call sliderPosition() when you need the value.

                                        My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                        1 Reply Last reply Reply Quote 2
                                        • First post
                                          Last post