Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-94841

ComboBox drop down lise auto scrolls on mouse movement

    XMLWordPrintable

    Details

    • Platform/s:
      Windows

      Description

      In Attached example, if mouse is moved quickly from bottom in up/down motion in combo box drop down list. Elements in combobox automatically scrolls down to its end.

      import QtQuick 2.15
      import QtQuick.Window 2.15
      import QtQuick.Controls 2.0
      
      
      Window {
          width: 800
          height: 480
          visible: true
          title: qsTr("ListView auto scrolling on faster movement of mouse enter exit")
      
      
          ComboBox {
              id: control
              model: ["First", "Second", "Third", "Four", "Five", "Sixth", "Seven", "Eight", "Ninth", "Tenth"]
      
              delegate: ItemDelegate {
                  width: control.width
                  contentItem: Text {
                      text: modelData
                      color: "#21be2b"
                      font: control.font
                      elide: Text.ElideRight
                      verticalAlignment: Text.AlignVCenter
                  }
                  highlighted: control.highlightedIndex === index
              }
      
              indicator: Canvas {
                  id: canvas
                  x: control.width - width - control.rightPadding
                  y: control.topPadding + (control.availableHeight - height) / 2
                  width: 12
                  height: 8
                  contextType: "2d"
      
                  Connections {
                      target: control
                      function onPressedChanged() { canvas.requestPaint(); }
                  }
      
                  onPaint: {
                      context.reset();
                      context.moveTo(0, 0);
                      context.lineTo(width, 0);
                      context.lineTo(width / 2, height);
                      context.closePath();
                      context.fillStyle = control.pressed ? "#17a81a" : "#21be2b";
                      context.fill();
                  }
              }
      
              contentItem: Text {
                  leftPadding: 0
                  rightPadding: control.indicator.width + control.spacing
      
                  text: control.displayText
                  font: control.font
                  color: control.pressed ? "#17a81a" : "#21be2b"
                  verticalAlignment: Text.AlignVCenter
                  elide: Text.ElideRight
              }
      
              background: Rectangle {
                  implicitWidth: 120
                  implicitHeight: 40
                  border.color: control.pressed ? "#17a81a" : "#21be2b"
                  border.width: control.visualFocus ? 2 : 1
                  radius: 2
              }
      
              popup: Popup {
                  y: control.height - 1
                  height: 150
                  width: control.width
                  implicitHeight: contentItem.implicitHeight
                  padding: 1
      
                  contentItem: ListView {
                      clip: true
                      implicitHeight: contentHeight
                      model: control.popup.visible ? control.delegateModel : null
                      currentIndex: control.highlightedIndex
      
                      ScrollIndicator.vertical: ScrollIndicator { }
                  }
      
                  background: Rectangle {
                      border.color: "#21be2b"
                      radius: 2
                  }
              }
          }
      }
      

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            qt.team.quick.subscriptions Qt Quick and Widgets Team
            Reporter:
            irfan.omair@digia.com Irfan Omair
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes