![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Stanislaus |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 17 Регистрация: 23.4.2008 Пользователь №: 156 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Столкнулся тут с неким багом(?). Сделал обработчик сигнала doublrClicked для QTableView:
Сам слот:
Коннекшн:
Когда я открываю даблкликом документы перемещаясь по строкам вниз QTableView, все нормально, но, как только я начинаю перемещаться с нижних строк на верхние, он открывает предыдущий нижний документ (последний scripts_query.value(1) == предыдущему scripts_query.value(1)), хотя вью и модель изменились. У меня Qt GPL 4.3.4, скомпилированная Visual C++ 2008 Express Edition, h-ки и библиотеки для PSQL от PostgreSQL 8.3.1. Хочу добавить, что под X11 все пашет идеально. Короче застрял, если нужны какие-нибудь дополнительные данные, сообщите. Сообщение отредактировал Stanislaus - 23.4.2008, 16:43 |
|
|
![]() |
Stanislaus |
![]()
Сообщение
#2
|
Студент ![]() Группа: Новичок Сообщений: 17 Регистрация: 23.4.2008 Пользователь №: 156 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Короче вот так, заменил:
на
т.к. полюбому мне нужен query, что бы иметь доступ к полю "id"... но соответственно напоролся на cannot use 'dynamic_cast' to convert from 'const QAbstractItemModel *' to 'QSqlQueryModel *'... Насколько я помню, все изменения в Model (в котором я это поля удалил, чтобы оно во View не появилось) не затрагивают лежащие в основе данные (в данном случае QSqlQuery). Например, есть у меня 5 кортежей данных (и соответственно 5 строк во View).
В QTableView следующее:
Например, открываю я 1 запись, CMN::DEBUG: index.row() == 0, scripts_query.record().value("id").toInt() == 12, Good спускаюсь ниже, открываю 3 запись, PN::ATOMOHOST: index.row() == 2, scripts_query.record().value("id").toInt() == 34, Good спускаюсь еще ниже, открываю 4 запись, U3::TASKBAR: index.row() == 3, scripts_query.record().value("id").toInt() == 45, Good теперь хочу подняться наверх и открываю 2 запись, CORP::CHECK_ICQ: index.row() == 1, scripts_query.record().value("id").toInt() == 45, Ooops, модель забыла перевести стрелки... поднимаюсь еще наверх, открываю 1 запись, CMN::DEBUG: index.row() == 0, scripts_query.record().value("id").toInt() == 21, Ooops, указывает на id предыдущей записи... типа квантовый скачок в прошлое спускаюсь к 4 записи, U3::TASKBAR: index.row() == 3, scripts_query.record().value("id").toInt() == 45, Good, указывает на верный id опять... индекс модели всегда верный, но при смене направлениявниз-вверх происходит вот такая лажа... |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.6.2025, 1:22 |