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. Qt Quick Button' hovered is true event if it's disabled
Forum Updated to NodeBB v4.3 + New Features

Qt Quick Button' hovered is true event if it's disabled

Scheduled Pinned Locked Moved QML and Qt Quick
15 Posts 2 Posters 7.2k 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.
  • T Offline
    T Offline
    Tân Ngọc Đỗ
    wrote on last edited by
    #1

    Hello,

    I encountered an anoying problem with Qt Quick Button. I set the button to "enabled: false"
    But sometimes, I hovered my mouse on it, the value of "hovered" is still true. I don't know it is a bug or not .
    Further more, when I pick my mouse out of the button , some time the "hovered" is still true

    Can you help me ?

    Thanks

    1 Reply Last reply
    0
    • p3c0P Offline
      p3c0P Offline
      p3c0
      Moderators
      wrote on last edited by
      #2

      Hi,

      Which Qt Version/OS are you using ?

      157

      1 Reply Last reply
      0
      • T Offline
        T Offline
        Tân Ngọc Đỗ
        wrote on last edited by
        #3

        Hello,

        I'm using 5.4.0

        1 Reply Last reply
        0
        • p3c0P Offline
          p3c0P Offline
          p3c0
          Moderators
          wrote on last edited by
          #4

          That's strange, it works on Ubuntu 14.04 with Qt 5.3.2
          Tried the following code
          @
          Item {
          id: window
          width: 320
          height: 480

          Button {
              id: button;
              enabled: false
              text: "hover here"
              MouseArea {
                  anchors.fill: parent
                  hoverEnabled: true
                  onEntered: {
                      console.log("entered")
                  }
              }
          }
          

          }
          @

          Can you try the above ?

          157

          1 Reply Last reply
          0
          • T Offline
            T Offline
            Tân Ngọc Đỗ
            wrote on last edited by
            #5

            Hello,
            Actually your sample code runs well even if I do not use MouseArea.
            In my case, some time it's happened. I also have binding loop with "hovered" property of button

            1 Reply Last reply
            0
            • p3c0P Offline
              p3c0P Offline
              p3c0
              Moderators
              wrote on last edited by
              #6

              and how do you do it without MouseArea ? Sorry I didnt get a chance to use Qt 5.4 yet. Does it have any new added signals ?

              157

              1 Reply Last reply
              0
              • T Offline
                T Offline
                Tân Ngọc Đỗ
                wrote on last edited by
                #7

                You can use "hovered" as a read-only property of button. It's a built-in property and you don't need to define a MouseArea, if you define a MouseArea you can not use some Button property and its signal . These feature belongs to QtQuick Button before 5.4 . You can refer : http://doc.qt.io/qt-5/qml-qtquick-controls-button.html

                There is also one signal: clicked() . It's more convenient for user than defining a MouseArea

                Thanks

                1 Reply Last reply
                0
                • p3c0P Offline
                  p3c0P Offline
                  p3c0
                  Moderators
                  wrote on last edited by
                  #8

                  Hmm these were present in Qt 5.3.2
                  I tried the following new code as per it
                  @
                  Item {
                  id: window
                  width: 320
                  height: 480

                  Button {
                      id: button;
                      enabled: false
                      text: "hover here"
                  }
                  
                  Timer {
                      interval: 500; running: true; repeat: true
                      onTriggered: console.log(button.hovered)
                  }
                  

                  }
                  @

                  Keeping enabled to false; prints false on timeout. And when enabled set to true, true or false gets printed as expected on hover.

                  157

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    Tân Ngọc Đỗ
                    wrote on last edited by
                    #9

                    Yes, It runs ok with 5.4 . Maybe my problem relates to binding loop of "hovered" .

                    1 Reply Last reply
                    0
                    • p3c0P Offline
                      p3c0P Offline
                      p3c0
                      Moderators
                      wrote on last edited by
                      #10

                      Ok. Can you post the related code then which produces the problem ?

                      157

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        Tân Ngọc Đỗ
                        wrote on last edited by
                        #11

                        Well I create a PlayBar.qml : there are 4 buttons in this files and I used a user-defined property : "isHovered" as a result of "hovered" on those 4 buttons :
                        @
                        //PlayBar.qml:
                        ToolBar {
                        id:toolBar
                        readonly property bool isHovered: ( btnNextFrame.hovered || btnPlayStop.hovered || btnPrevFrame.hovered
                        || btnNextMovie.hovered || btnPrevMovie.hovered) )
                        ..........................................................

                        //Main.qml:
                        ApplicationWindow {

                        PlayBar {
                        id: playBar
                        }

                        property bool hovered: playBar.isHovered

                        }
                        @

                        I receive a message :"Binding loop for "isHovered" in PlayBar.qml

                        1 Reply Last reply
                        0
                        • p3c0P Offline
                          p3c0P Offline
                          p3c0
                          Moderators
                          wrote on last edited by
                          #12

                          Well I was not able to produce the "Binding Loop" error from above code. But it could possibly be due to the same.

                          157

                          1 Reply Last reply
                          0
                          • T Offline
                            T Offline
                            Tân Ngọc Đỗ
                            wrote on last edited by
                            #13

                            When I roll-back to 5.3.2 there are no problem with "binding loop" and the button is not hovered when it is disable . It's very strange!!!

                            1 Reply Last reply
                            0
                            • p3c0P Offline
                              p3c0P Offline
                              p3c0
                              Moderators
                              wrote on last edited by
                              #14

                              Then it could be a bug in Qt 5.4. Please report it on "Qt bug tracker":https://bugreports.qt-project.org/

                              157

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                Tân Ngọc Đỗ
                                wrote on last edited by
                                #15

                                Well, I will reproduce the problem for clearer description on bug tracker.

                                Anyways, thank you very much for your help!

                                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