Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. ignore shift to move between edit text
Qt 6.12 LTS is out! See what's new in the release blog

ignore shift to move between edit text

Scheduled Pinned Locked Moved Unsolved General and Desktop
22 Posts 4 Posters 15.1k 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.
  • mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #8

    Hi
    Did you use debugger and check what key combination that makes it
    "tab" to next edit ?
    I wondering if the jump happens when u pass the key to
    ui->leInformation->KeyPressEvent(event);
    (then we can maybe do different, like remove shift)

    R 1 Reply Last reply
    0
    • mrjjM mrjj

      Hi
      Did you use debugger and check what key combination that makes it
      "tab" to next edit ?
      I wondering if the jump happens when u pass the key to
      ui->leInformation->KeyPressEvent(event);
      (then we can maybe do different, like remove shift)

      R Offline
      R Offline
      rest
      wrote on last edited by
      #9

      @mrjj i will make some debugging now, but is not about that cause i commented ui->leInformation->KeyPressEvent(event); and is the same

      mrjjM 1 Reply Last reply
      0
      • R rest

        @mrjj i will make some debugging now, but is not about that cause i commented ui->leInformation->KeyPressEvent(event); and is the same

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

        @rest
        if you dont forward the keys at all , it still jumps ?
        Ok, it sounds like the input trigger key navigation.

        I assume you are using an USB scanner in hid keyboard mode.

        You might want to install event filter on Application to find out what is going on.
        http://doc.qt.io/qt-5/qobject.html#installEventFilter

        https://stackoverflow.com/questions/26368659/qwidget-how-to-receive-keypressevent-inside-child-widgets

        Its hard to suggest what to do when we dont really know why input makes it focus next control.

        1 Reply Last reply
        2
        • R Offline
          R Offline
          rest
          wrote on last edited by
          #11

          so i made some debugging and when shift is pressed he gets inside my if and changes focus
          alt text
          0_1523557300643_dsdsdsdsds.PNG

          1 Reply Last reply
          0
          • R Offline
            R Offline
            rest
            wrote on last edited by
            #12

            but witch one of the variables gets me the key pressed? i tried something like this !event->key() == Qt::ShiftModifier and doesnt work, there is another way to check?

            mrjjM 1 Reply Last reply
            0
            • R rest

              but witch one of the variables gets me the key pressed? i tried something like this !event->key() == Qt::ShiftModifier and doesnt work, there is another way to check?

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

              @rest said in ignore shift to move between edit text:

              Qt::ShiftModifier

              if(event->modifiers() & Qt::ShiftModifier){...}

              1 Reply Last reply
              2
              • R Offline
                R Offline
                rest
                wrote on last edited by
                #14

                @mrjj thank you so much, i will try everything and see what works

                JonBJ 1 Reply Last reply
                0
                • R rest

                  @mrjj thank you so much, i will try everything and see what works

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #15

                  @rest
                  Be careful: I'm thinking you will get one event for just the SHIFT press, and then Qt::ShiftModifier will also still be true for the event which arrives for the B.

                  I don't get the whole intention of what you're trying to achieve with your code. You decide where input is to go based on:

                  if(focusWidget() == ui->lePath && !ui->lePath->text().isEmpty())
                  

                  Why? What's the logic here? What's the idea of switching focus here?

                  R 1 Reply Last reply
                  1
                  • JonBJ JonB

                    @rest
                    Be careful: I'm thinking you will get one event for just the SHIFT press, and then Qt::ShiftModifier will also still be true for the event which arrives for the B.

                    I don't get the whole intention of what you're trying to achieve with your code. You decide where input is to go based on:

                    if(focusWidget() == ui->lePath && !ui->lePath->text().isEmpty())
                    

                    Why? What's the logic here? What's the idea of switching focus here?

                    R Offline
                    R Offline
                    rest
                    wrote on last edited by
                    #16

                    @JonB if i scanned a barcode means that focus is on first edit and he is not empty means i should change focus on second edit for scanning there, this is what i thought i don t have so much experience on this i don t really know how i can make this work

                    mrjjM JonBJ 2 Replies Last reply
                    0
                    • R rest

                      @JonB if i scanned a barcode means that focus is on first edit and he is not empty means i should change focus on second edit for scanning there, this is what i thought i don t have so much experience on this i don t really know how i can make this work

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

                      @rest
                      How do you know first barcode data is 100% received ?
                      Since it comes key pr key. Is there an end of input char ?

                      1 Reply Last reply
                      0
                      • R rest

                        @JonB if i scanned a barcode means that focus is on first edit and he is not empty means i should change focus on second edit for scanning there, this is what i thought i don t have so much experience on this i don t really know how i can make this work

                        JonBJ Offline
                        JonBJ Offline
                        JonB
                        wrote on last edited by
                        #18

                        @rest
                        But aren't you saying the "key presses for the barcode" are for each letter? When the second key arrives in lePath (it has the focus, and it's no longer empty), won't your code send it to leInformation?

                        R 1 Reply Last reply
                        2
                        • R Offline
                          R Offline
                          rest
                          wrote on last edited by
                          #19

                          No, i dont have something like that .. i don t know how to check this.. gets so difficult. first i had just one edit text and everything worked fine..

                          1 Reply Last reply
                          0
                          • JonBJ JonB

                            @rest
                            But aren't you saying the "key presses for the barcode" are for each letter? When the second key arrives in lePath (it has the focus, and it's no longer empty), won't your code send it to leInformation?

                            R Offline
                            R Offline
                            rest
                            wrote on last edited by
                            #20

                            @JonB what you mean with second key? everything is well until the uppercase gets in, if i scan only digits everything is fine for both edits

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

                              You can try to use only click focus and not strong focus.

                              1 Reply Last reply
                              0
                              • R Offline
                                R Offline
                                rest
                                wrote on last edited by
                                #22

                                I realised i was doing something not necessary and my key event exactly checking that shift so i put my setfocus for first edit text in constructor and verified in key pressed event if event->text is empty to ignore it.

                                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
                                • Unsolved