Выбор строки после редактирования, QSqlQueryModel + QSortFilterProxyModel + QTableView |
Здравствуйте, гость ( Вход | Регистрация )
Выбор строки после редактирования, QSqlQueryModel + QSortFilterProxyModel + QTableView |
512es |
1.12.2009, 15:05
Сообщение
#1
|
Участник Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: 0 |
Всем привет!
Много гуглил, искал решение, чего только не перепробовал. Но проблему так и не удалось решить: На основе примера *\qt\examples\sql\querymodel\editablesqlmodel.cpp сделал редактируемую QSqlQueryModel, и прикрутил к ней QSortFilterProxyModel. Вот кусок кода, по которому видно, что я уже перепробовал:
Задача: после редактирования ячейки обновить отображаемые данные в таблице и оставить выбранной ячейкой ту, которую мы редактировали. Для этой цели вызываю сигнал emit signalGoToClientById(index), который соединён со слотом:
Оно работает, но если я выхожу из редактирования кликом мышки, то после того как выставить нужную ячейку, курсор переходит на ту строку, куда я кликнул. Помогите люди добрые, наверняка вы уже сталкивались с этой же проблемой.. Сообщение отредактировал 512es - 1.12.2009, 15:07 |
|
|
Litkevich Yuriy |
7.12.2009, 17:19
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
512es |
9.12.2009, 17:26
Сообщение
#3
|
Участник Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: 0 |
selectRow(900); это не переход на строку, а её выделение, для перехода нужно устанавливать текущую, ключевые слова: "set current"setCurrentIndex(cur) ? Это в первом посте. Пробовал и так и так. У меня в таблице выделение по строкам идёт, поэтому для меня сейчас это синонимы. Так и не решил проблему. Перепробовал уже, как мне кажется, все возможные методы.. Перегуглил весь инет. Неужели нельзя QSqlQueryModel заставить работать как полагается?? В QSqlTableModel была у меня такая же проблема, я её решил с помощью updateRowInTable() в setData(). Но, в QSqlQueryModel нету возможности изменять данные в таблице! По крайней мере я не нашёл.. Хотя есть одна идейка только.. Через data() менять текст отображения изменёных ячеек. А изменёные индексы и содержание хранить в массиве.. Вот только не знаю, на сколько это правильно.. Мужики, выручайте, проект горит! Подскажите, в какую сторону копать! |
|
|
Текстовая версия | Сейчас: 13.12.2024, 11:04 |