Russian Qt Forum

Qt => Model-View (MV) => Тема начата: gorec323 от Февраль 21, 2011, 10:16



Название: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: gorec323 от Февраль 21, 2011, 10:16
Проблема состоит в следующем. Выполняются асинхронные запросы к БД в отдельном потоке для устранения замирания UI при запросе больших объемов данных из БД. Создаю модель в потоке UI и устанвливаю эту модель для представления(наследника от QTableView). В потоке UI устанавливаю необходимые заголовки для отображения модели и передаю указатель на эту модель в поток, в котором выполняются запросы. После выполнения запроса результат отображается не совсем правильно, т.е. количество строк в отображении больше, чем количество записей в результате запроса. Причем выделить можно только непустые строки. Результат работы -  во вложении. При необходимости выложу исходники.


Название: Re: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: _KoT_ от Февраль 21, 2011, 17:22
А в чём наследник отличается от QTableView? Может ради эксперимента попробовать с обычным QTableView?


Название: Re: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: kalif от Февраль 22, 2011, 10:17
Я тоже столкнулся с такой проблемой, решения пока не нашел. Скорее всего это баг самого Qt. Проблема наблюдается при заполнении модели в отдельном потоке и не зависит от представления.


Название: Re: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: gorec323 от Февраль 22, 2011, 12:44
http://bugreports.qt.nokia.com/browse/QTBUG-1820 - как я понял - это баг Qt


Название: Re: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: integer005 от Февраль 24, 2011, 13:27
Mutex использовал. Может одновременное обращение к одному указателю, потому такой эффект?


Название: Re: проблема с отображением QSqlQueryModel в наследнике от QTableView
Отправлено: gorec323 от Февраль 24, 2011, 20:50
Mutex использовал. Может одновременное обращение к одному указателю, потому такой эффект?
Чтобы использовать mutex, его надо передавать тогда в модель, а модель его не использует. Поэтому не в этом дело. Тем более, что уже описал выше, про баг в qt, что пустые строки появляются, если QTableView в качестве модели установить пустую QSqlQueryModel.