Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. [Solved]Something really strange while trying to navigate in Grid
Qt 6.11 is out! See what's new in the release blog

[Solved]Something really strange while trying to navigate in Grid

Scheduled Pinned Locked Moved QML and Qt Quick
gridnavigationkeyboard
13 Posts 2 Posters 7.9k Views 2 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.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by p3c0
    #1

    something really strange is happening with childat() I've no clue why but it begins really well then it just acts really strange I mean it selects random child griddy is Grid's Id have I found a bug guys?

    Keys.onPressed: {
            if(event.key===Qt.Key_Right){
                event.accepted=true
                griddy.childAt(index+=65,indexi+=0).focus=true
               }
            if(event.key===Qt.Key_Down){
                event.accepted=true
                griddy.childAt(index+=0,indexi+=65).focus=true
               }
        }
    

    Edited: Please use ``` (3 backticks) for code blocks - p3c0

    p3c0P 1 Reply Last reply
    0
    • ? A Former User

      something really strange is happening with childat() I've no clue why but it begins really well then it just acts really strange I mean it selects random child griddy is Grid's Id have I found a bug guys?

      Keys.onPressed: {
              if(event.key===Qt.Key_Right){
                  event.accepted=true
                  griddy.childAt(index+=65,indexi+=0).focus=true
                 }
              if(event.key===Qt.Key_Down){
                  event.accepted=true
                  griddy.childAt(index+=0,indexi+=65).focus=true
                 }
          }
      

      Edited: Please use ``` (3 backticks) for code blocks - p3c0

      p3c0P Offline
      p3c0P Offline
      p3c0
      Moderators
      wrote on last edited by
      #2

      @Zubalama childAt requires x and y coordinates. Are you sure you are passing the right coordinates ?

      157

      ? 1 Reply Last reply
      0
      • p3c0P p3c0

        @Zubalama childAt requires x and y coordinates. Are you sure you are passing the right coordinates ?

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #3

        @p3c0 index:x
        index:y and I know for sure that every element is width:60... and height: 60 and spacing is 5
        and I tested it even in designer and coordinates are correct. Two days have passed still trying to figure out what's wrong

        p3c0P 1 Reply Last reply
        0
        • ? A Former User

          @p3c0 index:x
          index:y and I know for sure that every element is width:60... and height: 60 and spacing is 5
          and I tested it even in designer and coordinates are correct. Two days have passed still trying to figure out what's wrong

          p3c0P Offline
          p3c0P Offline
          p3c0
          Moderators
          wrote on last edited by
          #4

          @Zubalama Maybe due to spacing the items are not found correctly.
          I made a similar code for testing. See if this is what you are trying to do:

          Grid {
              id: grid
              focus: true
              columns: 6
              spacing: 5
              Rectangle { color: focus ? "red" : "yellow"; width: 50; height: 50 }
              Rectangle { color: focus ? "red" : "green"; width: 50; height: 50 }
              Rectangle { color: focus ? "red" : "blue"; width: 50; height: 50 }
              Rectangle { color: focus ? "red" : "cyan"; width: 50; height: 50 }
              Rectangle { color: focus ? "red" : "magenta"; width: 50; height: 50 }
              Rectangle { color: focus ? "red" : "pink"; width: 50; height: 50 }
          
              property int index: 0
          
              Keys.onPressed: {
                  if(event.key===Qt.Key_Right){
                      grid.childAt((index++)*55,0).focus=true
                  }
              }
          }
          

          157

          ? 1 Reply Last reply
          0
          • p3c0P p3c0

            @Zubalama Maybe due to spacing the items are not found correctly.
            I made a similar code for testing. See if this is what you are trying to do:

            Grid {
                id: grid
                focus: true
                columns: 6
                spacing: 5
                Rectangle { color: focus ? "red" : "yellow"; width: 50; height: 50 }
                Rectangle { color: focus ? "red" : "green"; width: 50; height: 50 }
                Rectangle { color: focus ? "red" : "blue"; width: 50; height: 50 }
                Rectangle { color: focus ? "red" : "cyan"; width: 50; height: 50 }
                Rectangle { color: focus ? "red" : "magenta"; width: 50; height: 50 }
                Rectangle { color: focus ? "red" : "pink"; width: 50; height: 50 }
            
                property int index: 0
            
                Keys.onPressed: {
                    if(event.key===Qt.Key_Right){
                        grid.childAt((index++)*55,0).focus=true
                    }
                }
            }
            
            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #5

            @p3c0 you have only horizontal I have vertical and horizontal probably that's why?

            p3c0P 1 Reply Last reply
            0
            • ? A Former User

              @p3c0 you have only horizontal I have vertical and horizontal probably that's why?

              p3c0P Offline
              p3c0P Offline
              p3c0
              Moderators
              wrote on last edited by
              #6

              @Zubalama Well then,

              Grid {
                  id: grid
                  focus: true
                  columns: 3
                  rows: 3
                  spacing: 5
                  Rectangle { color: focus ? "red" : "yellow"; width: 50; height: 50 }
                  Rectangle { color: focus ? "red" : "green"; width: 50; height: 50 }
                  Rectangle { color: focus ? "red" : "blue"; width: 50; height: 50 }
                  Rectangle { color: focus ? "red" : "cyan"; width: 50; height: 50 }
                  Rectangle { color: focus ? "red" : "magenta"; width: 50; height: 50 }
                  Rectangle { color: focus ? "red" : "pink"; width: 50; height: 50 }
              
                  property int xindex: -1
                  property int yindex: 0
              
                  Keys.onPressed: {
                      if(event.key===Qt.Key_Right) {
                          grid.childAt((++xindex)*55,yindex*55).focus=true
                      } else if(event.key===Qt.Key_Down) {
                          grid.childAt(xindex*55,(++yindex)*55).focus=true
                      }
                  }
              }
              

              You can just change logic as per your need.

              157

              1 Reply Last reply
              0
              • ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #7

                I think you don't understand what's my problem I have 10 columns and 5 rows and they don't act the way they should not with spacing not even without. At first 20 navigation acts they they do well but after that they act more then strangely

                p3c0P 1 Reply Last reply
                0
                • ? A Former User

                  I think you don't understand what's my problem I have 10 columns and 5 rows and they don't act the way they should not with spacing not even without. At first 20 navigation acts they they do well but after that they act more then strangely

                  p3c0P Offline
                  p3c0P Offline
                  p3c0
                  Moderators
                  wrote on last edited by
                  #8

                  @Zubalama I still think it could be more like a logical issue. May be you should post the complete minimal code which will clearly indicate the problem.
                  Did you take a look at GridView ? IMO, navigation in it is far more easier.

                  157

                  ? 2 Replies Last reply
                  0
                  • p3c0P p3c0

                    @Zubalama I still think it could be more like a logical issue. May be you should post the complete minimal code which will clearly indicate the problem.
                    Did you take a look at GridView ? IMO, navigation in it is far more easier.

                    ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #9

                    @p3c0 no I had just Grid gonna try GridView now

                    1 Reply Last reply
                    0
                    • p3c0P p3c0

                      @Zubalama I still think it could be more like a logical issue. May be you should post the complete minimal code which will clearly indicate the problem.
                      Did you take a look at GridView ? IMO, navigation in it is far more easier.

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #10

                      @p3c0 I just realized that they begin acting strangely after focusing grid element for second time

                      1 Reply Last reply
                      0
                      • ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by
                        #11

                        I realized now :/ I did +=that ruined it I should've done just +65 everything works properly now ty P3Co

                        p3c0P 1 Reply Last reply
                        0
                        • ? A Former User

                          I realized now :/ I did +=that ruined it I should've done just +65 everything works properly now ty P3Co

                          p3c0P Offline
                          p3c0P Offline
                          p3c0
                          Moderators
                          wrote on last edited by
                          #12

                          @Zubalama Good that you found it. Doesn't GridView fit in your scenario ?

                          157

                          ? 1 Reply Last reply
                          0
                          • p3c0P p3c0

                            @Zubalama Good that you found it. Doesn't GridView fit in your scenario ?

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #13

                            @p3c0 it does yet I wanted to fix the problem I personally faced thanks for an advice

                            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