![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
PAFOS |
![]()
Сообщение
#1
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте. Нужен хелп.
Есть 2 SQL таблицы. leafs( leaf_id int primary key auto_increment, name text ) sizes( size_id int primary key auto_increment, leaf_id int, name ) соответственно sizes.size_id = leaf_id Сделал свою модель. В моделе храню две QSqlTableModel - одна для leafs, другая для sizes В своей моделе сделал иерархию. Корень записи из leafs, ветка 1-го уровня - записи из sizes. Для показа/редиктирования модели сделал два виджета QTableView. Один показывает leafs, другой sizes. Когда выбираю строку из leafs, генерится сигнал currentRowChanged(QModelIndex current,QModelIndex previous). В нем я делаю m_sizesModel->setRootIndex(current); Все работает, записи добавляются и в ту и другую таблицы, данные изменяются корректно. Когда доходит дело до удаления записей начинается лажа. согласно документации для удаления записей я должен переопределить метод removeRows( int row, int count, QModelIndex parent) в нем я должен вызвать метод beginRemoveRows() прежде чем удалять данные и endRemoveRows() после того как данные удалены. В метод приходят корректные аргументы (т.е. валидный индекс, номер строки и кол-во) при вызове метода beginRemoveRows(parent,row,row+count-1) прога намертво виснет! даже не знаю в чем беда! ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 29.6.2025, 23:34 |