Russian Qt Forum

Qt => Базы данных => Тема начата: stealth от Апрель 04, 2008, 18:52



Название: Как убрать model у tableView?
Отправлено: stealth от Апрель 04, 2008, 18:52
QTableView работает с моделью, установленной setModel(),
после отключения от БД нужно сделать tableView пустым(отсоединить модель), но как вот это сделать что-то понять не могу.


Название: Re: Как убрать model у tableView?
Отправлено: Karl-Philipp от Апрель 04, 2008, 19:15
QTableView работает с моделью, установленной setModel(),
после отключения от БД нужно сделать tableView пустым(отсоединить модель), но как вот это сделать что-то понять не могу.


может подойдет это:

void QSqlQueryModel::clear ()  [virtual]
Clears the model and releases any acquired resource.



Название: Re: Как убрать model у tableView?
Отправлено: stealth от Апрель 04, 2008, 19:21
попробовал, после  clear() остаются ячейки, удаляются только данные, не то...

а модель обычная QSqlTableModel


Название: Re: Как убрать model у tableView?
Отправлено: Karl-Philipp от Апрель 04, 2008, 19:24
попробовал, после  clear() остаются ячейки, удаляются только данные, не то...

а модель обычная QSqlTableModel

а если так:

bool QSqlQueryModel::removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() )  [virtual]
Removes count columns from the model starting from position column. The parent parameter must always be an invalid QModelIndex, since the model does not support parent-child relationships.
Removing columns effectively hides them. It does not affect the underlying QSqlQuery.
Returns true if the columns were removed; otherwise returns false.


Название: Re: Как убрать model у tableView?
Отправлено: stealth от Апрель 04, 2008, 19:33
насколько я понимаю эти функции будут пытаться удалить данные в модели (что мне не нужно), а нужно убрать связь между model и view


Название: Re: Как убрать model у tableView?
Отправлено: Zmeishe от Апрель 04, 2008, 19:41
Отсоединение от БД вовсе не означает закрытие всех наборов данных(моделей), но если это необходимо - закрывай(close) набор данных, там должон быть метод reset(), он всем предреставлениям сигнал высылает. Строки исчезнут, колумны остануться.

>>будут пытаться удалить данные в модели (что мне не нужно), а нужно убрать связь между model и view

А в чём сакральный смысл для юзера очистить вьюху, но оставить модель? Какой он должен сделать интуитивный вывод из этого?


Название: Re: Как убрать model у tableView?
Отправлено: ритт от Апрель 05, 2008, 13:12
можно установить во вьюху любую другую модель (или даже приватную шаред_нулл модель)
но в таком случае уйдёт вся информация о хидерах и т.д. - например, сохранить какие-то настройки вьюхи не сможешь


Название: Re: Как убрать model у tableView?
Отправлено: stealth от Апрель 06, 2008, 13:13
спасибо, всё-таки остановился на том, что ставлю новую пустую модель