|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
||||||
PyQt5 Как удалить выделенную строку из QTableView?26.05.2020, 20:50. Показов 19856. Ответов 21
Метки нет (Все метки)
Здравствуйте. Есть QSqlQueryModel которая вытягивает данные из базы данных и передает их в QTableView. Я знаю что модель QSqlQueryModel только для чтения. Подскажите как удалить выделенную строку из QTableView и обновить модель или на какую модель заменить мою?
0
|
||||||
| 26.05.2020, 20:50 | |
|
Ответы с готовыми решениями:
21
Как удалить выделенную строку в DBGrid? Как удалить выделенную строку из DBGrid? |
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
||||||
| 27.05.2020, 10:32 | ||||||
|
Если строку надо удалить из базы, то в качестве модели удобнее использовать QSqlTableModel и метод removeRow.
Если строку достаточно скрыть- то setRowHidden. Добавлено через 19 минут В вашем случае моделька (чтобы передать все нужные сигналы обновления QTableView) при удалении должна вызывать чтото типа:
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|
| 27.05.2020, 21:19 [ТС] | |
|
Подскажите как прикрутить эти сигналы к QSqlQueryModel? Может у вас есть какой-то пример?
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
|
||||||
| 27.05.2020, 22:14 | ||||||
|
КМК лучше прикрутить к tableview контекстное меню
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
||||||
| 15.06.2020, 11:09 [ТС] | ||||||
|
Написал свою модель, которая наследуется от QSqlQueryModel, но сама функция удаления либо не удаляет выбранную строку, либо удаляет, но всегда последнюю. Подскажите где в ней ошибка.
0
|
||||||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
|
| 15.06.2020, 13:04 | |
|
покажите, как вы вызываете removeRows
Добавлено через 2 минуты для чего в ней используется переменная "index", если sql запрос удаляет всегда 1 строку?
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||
| 15.06.2020, 13:25 [ТС] | |||||||
0
|
|||||||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
|
| 15.06.2020, 16:52 | |
|
Тут дело в том, что после удаления строки из реальной таблицы БД она не удаляется из кеша QSqlQuery, из которого читает данные NewSqlModel.data()
Добавлено через 2 минуты напрашивается NewSqlModel.setQuery после удаления или чтото подобное
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||
| 15.06.2020, 19:24 [ТС] | |||||||
|
Т.е. я правильно понял, что нужно повторно выполнить запрос:
0
|
|||||||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
||
| 15.06.2020, 21:58 | ||
|
Модель заново не надо создавать, только обновить данные в ней.
0
|
||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
||||||
| 16.06.2020, 11:28 | ||||||
Сообщение было отмечено troyann как решение
Решение
пример:
2
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||
| 16.06.2020, 12:11 [ТС] | |||||||
После того как я стал передавать функции removeRows значение id выбранной строки из БД, запрос стал правильно работать.
0
|
|||||||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
||
| 16.06.2020, 12:46 | ||
![]() СтОит обучить модельку по id находить индекс и наоборот
0
|
||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||||||
| 18.06.2020, 21:36 [ТС] | |||||||||||
|
Добрался наконец-то до компьютера. Вот мой работающий код, может кому-то пригодится.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
||||||
| 16.08.2020, 21:02 [ТС] | ||||||
|
Что бы не дублировать тему, задам вопрос здесь. К модели в предыдущем ответе решил прикрутить сортировку на основе QSortFilterProxyModel. Сортировка работает, но при попытке удалить строку происходит вылет программы с ошибкой "Process finished with exit code 255". В чем может быть ошибка?
Код функции удаления:
0
|
||||||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
|
||||||
| 17.08.2020, 01:13 | ||||||
|
ловите исключение, так трудно сказать
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||
| 17.08.2020, 23:40 [ТС] | |||||||
|
Функция removeRows:
0
|
|||||||
|
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
|
|
| 18.08.2020, 09:56 | |
|
Можете выложить полный код, вырезав всё лишнее, демонстрирующий проблему?
0
|
|
|
0 / 0 / 0
Регистрация: 21.03.2019
Сообщений: 10
|
|||||||
| 18.08.2020, 22:43 [ТС] | |||||||
0
|
|||||||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
|
||||||
| 19.08.2020, 00:05 | ||||||
Добавлено через 16 минут нужна ли вам эта прокси? http://old.code.mu/sql/order-by.html
0
|
||||||
| 19.08.2020, 00:05 | |
|
Помогаю со студенческими работами здесь
20
Как удалить выделенную строку в бд через forms? QTableView как узнать выделенную клетку Как удалить выделенную строку в DbGrid, если строка результат выборки, объединения 2 таблиц?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|