Если нет особой цели держать всплывающее окно ComboBox
открытым при прокрутке, добавьте следующее свойство к вашему ListView
:
highlightRangeMode: ListView.StrictlyEnforceRange
Это закроет всплывающее окно ComboBox
, когда ListView
прокручивается.
PS
Кроме того, устранена проблема с выходом списка ComboBox
из области просмотра.
ОБНОВЛЕНИЕ при выпуске с header
элемент скрывается под другими элементами списка :
В соответствии с описанием ListView.StrictlyEnforceRange - the highlight never moves outside of the range. The current item changes if a keyboard or mouse action would cause the highlight to move outside of the range.
, когда элемент выходит за пределы диапазона, список меняет следующий элемент, и ComboBox
закрывает его всплывающее окно, но поскольку элемент заголовка ниже других ListView
элементов (см. этот параграф https://doc.qt.io/qt-5/qml-qtquick-listview.html#stacking -order-in-listview , делегат всегда выше заголовка), здесь невозможно отобразить заголовок по умолчанию здесь, в верхней части других элементов. Я бы предложил вам реализовать свой собственный заголовок за пределами списка. Извините, возможно, я не знал Qt так хорошо, чтобы найти другое решение.