beginInsertRows, Сложная модель |
Здравствуйте, гость ( Вход | Регистрация )
beginInsertRows, Сложная модель |
PAFOS |
21.2.2011, 15:18
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 258 Регистрация: 27.12.2010 Из: Дмитров Пользователь №: 2309 Спасибо сказали: 29 раз(а) Репутация: 8 |
Здравствуйте. Нужен хелп.
Есть 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) прога намертво виснет! даже не знаю в чем беда! |
|
|
Rocky |
21.2.2011, 15:26
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
соответственно sizes.size_id = leaf_id Или sizes.leaf_id = leafs.leaf_id ? В метод приходят корректные аргументы (т.е. валидный индекс, номер строки и кол-во) при вызове метода beginRemoveRows(parent,row,row+count-1) прога намертво виснет! Точно валидные? А данных много? Может выложишь минимальный компилируемый код, демонстрирующий проблему? |
|
|
Текстовая версия | Сейчас: 14.1.2025, 12:13 |