DE
Denis Erokhin4 июня 2019 г. 15: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 хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 5:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 12:50
EVA25 декабря 2023 г. 21:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 22:57
BlinCT27 декабря 2023 г. 19:57
Дмитрий10 января 2024 г. 15:18
Evgenii Legotckoi12 декабря 2023 г. 17:48
Выполнять селект элементов на view это архитектурная ошибка.
Тебе нужно сделать метод select в своей модели (наследник от QSqlQueryModel), там будут выполнятся операции по выборке а также должно быть свойство отображающие какой элемент сейчас выделен.
Что касается перелистывания списка, то подазриваю что вы используете методы BeginResetModel and endResetModel, эти методы полностью перестраивают вьюшку а значит и сбивают скрол. Нужно использовать:
Проблема была в смене фильтра в функции.