crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Очистка Headerov в QSqlQueryModel + QTableView
defnull
  опции профиля:
сообщение 18.6.2009, 1:54
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Из базы данных загражую данные в QSqlQueryModel и они отображаются в QTableView. Проблема в том, что за один раз могут прийти данные а на следующий раз уже нет.. очистка строк и колонок приводит к тому что хедеры остаются. Встал вопрос как очистить модель полностью? вместе с хедерами?

Долго промучившись дошёл до следующего:

int b= model->columnCount();

for (int i =0; i< b; i++)
     model->setHeaderData(i, Qt::Horizontal, tr(""))
model->removeColumns(0, B, QModelIndex());

int b= model->rowCount();

for (int i =0; i< b; i++)
     model->setHeaderData(i, Qt::Vertical, tr(""))
model->removeRows(0, B, QModelIndex());


Но даже при таком раскладе удаляется не всё а только горизонтальные хедеры=((( Подскажите пожалуйста как это реализовать? неужели у модели нет метода очистки её полностью??

Сообщение отредактировал defnull - 18.6.2009, 1:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 18.6.2009, 15:30
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


всё равно ничего не понял.

Предварительно объявил модель и назначил её представлению:
model = new QSqlQueryModel;
view->setModel(model);


В нужном месте устанавливаешь в модель запрос:
QString qstr = "SELECT ... FROM .... "; // свой запрос
QSqlDatabase db = QSqlDatabase::database(); // соединение с БД по умолчанию
model->setQuery(qstr, db); // устанавливаем запрос


когда нужно очистить модель, только для того, чтобы пользователь увидел пустое представление, вместо последней строки предыдущего фрагмента кода пишешь:
model->setQuery(QString(), db); // устанавливаем пустой запрос
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_он же.._*
сообщение 18.6.2009, 16:12
Сообщение #3





Гости








    


Всё так и делаю) Тоесть чтобы очистить хедеры надо передать пустой запрос к БД... странно это как-то, недостаток выбранной модели?
Спасибо поробую!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 11:13