Qtableviev после сортировки
Сделал проект по уроку + добавил фильтр по "Типу устройств". Проблема заключается в редактировании записей после фильтрации.
На 1 скрине до фильтрации, а на 2 после.
3
252
Питання задається статтеюQt/C++ - Урок 008. QDataWidgetMapper - Робота з базою даних через віджетВам це подобається? Поділіться в соціальних мережах!
- Останні коментарі
- AK24 квітня 2025 р. 12:04UPD: Переписал логику воспроизведения через стороннюю библиотеку BASS. Там выбрать можно
- AK01 квітня 2025 р. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- Тепер обговоріть на форумі
- DT14 квітня 2025 р. 15:38Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- f15 лютого 2025 р. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
2 Скрин
А вот что происходит, когда я пытаюсь отредактировать третью запись в отфильтрованной таблице :/
EVILEG наведи на путь истинный, что делаю не так подскажи :(
"QTableView с помощью метода data через индекс (QModelIndex) "
Ну вы используете слот для открытия диалога редактирования. Выглядеть он будет так.
Две последних строки с ошибками в коде вы не переписали. А в первой я забыл учесть один момент.
.
А теперь ещё раз и внимательно смотрим моё последнее сообщение
Всё, поменял таки заработало. Но почему то оно выбирает строку с индексом больше на 1. В итоге вот что юзаю и оно корректно работает :)
Потому, что в mainwindow вы работаете уже с индексами, когда создаёте диалог для редактирования, а диалоге в всё ещё работаете со строками.
Evileg, не совсем понимаю что тут нужно переписать, чтобы данные забирались через индекс, а не строку. :(
Вот так можно написать
Спасибо, всё заработало :)