DE
Denis ErokhinМаусым 4, 2019, 3:48 Т.Қ.
При выборе элеметна на ListView список пролистывается в конец.
Приложение для работы с БД.
Для отображения части информации используется ScrollView{ListView{}}. В качастве делегата используется DelegateModel.
DelegateModel{ id: visualModel model: elemModel groups: [ DelegateModelGroup{ name: "selected" } ] function itemsInSelected(){ filterOnGroup = "selected"; var cnt = count; filterOnGroup = "items"; return cnt; } delegate: Rectangle { id: listItem width: listViewId.width height: 50 color: (listItem.DelegateModel.inSelected) ? "#575757" : "#d3d3d3"; Text { id: nameText font.pixelSize: 18 text: "<b>" + NAME_c + "</b>" color: (listItem.DelegateModel.inSelected) ? "white" : "black" } Text { anchors.left: nameText.left anchors.right: parent.right anchors.top: nameText.bottom text: "<i>" + dbHelper.getElementType(ELEMENT_TYPE_ID_c) + "</i>" color: (listItem.DelegateModel.inSelected) ? "white" : "black" } MouseArea{ anchors.fill: parent onClicked:{ if (mouse.button === Qt.LeftButton){ if (mouse.modifiers & Qt.ControlModifier){ listItem.DelegateModel.inSelected = !listItem.DelegateModel.inSelected; }else{ //I am ashamed for that :( visualModel.items.removeGroups(0, visualModel.items.count, ["selected"]); listItem.DelegateModel.inSelected = true; } xTextInput.text = X_c; yTextInput.text = Y_c; zTextInput.text = Z_c; listViewId.curentElemId = ID_c; } } } } }
ScrollView{ anchors.left: searchPanel.left anchors.right: searchPanel.right anchors.top: searchPanel.bottom anchors.topMargin: searchPanel.height * 0.1 anchors.bottom: elemBtnsPanel.top anchors.bottomMargin: elemBtnsPanel.height * 0.1 ListView { id: listViewId visible: true focus: true currentIndex: -1 clip: true; cacheBuffer: 100000 snapMode: ListView.SnapToItem model: visualModel enabled: {return !isEditable} anchors.fill: parent property int curentElemId: 0; } }
В качестве модели выступает наследник от QSqlQueryModel.
Проблема, в том, что при выборе элеметна на ListView список пролистывается в конец.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Выполнять селект элементов на view это архитектурная ошибка.
Тебе нужно сделать метод select в своей модели (наследник от QSqlQueryModel), там будут выполнятся операции по выборке а также должно быть свойство отображающие какой элемент сейчас выделен.
Что касается перелистывания списка, то подазриваю что вы используете методы BeginResetModel and endResetModel, эти методы полностью перестраивают вьюшку а значит и сбивают скрол. Нужно использовать:
Проблема была в смене фильтра в функции.