Russian Qt Forum
Ноябрь 24, 2024, 23:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlTableModel и QTableView  (Прочитано 6442 раз)
Druxa
Гость
« : Сентябрь 04, 2007, 11:35 »

QSqlTableModel и QTableView. Как получить связь между положением курсора в QTableView и моделью данных. QSqlTableModel. Или как удалить из этой связки элемент?
Записан
Alexandr Az
Гость
« Ответ #1 : Сентябрь 04, 2007, 11:48 »

Цитировать
Как получить связь между положением курсора в QTableView и моделью данных?

Никак..... Потому что они не связаны...
Это не так уж и плохо, как может показаться на первый взгляд. Короче не получится у тебя сделать переход на следующию запись в модели и чтобы курсор во вью переместился тоже. Чай не TDataSet. Но! Мы можем связать все view воедино и перемещение в одной отображается на другой. Другими словами хочеш бегать по вьюхе - забудь что существует модель.........

Цитировать
Или как удалить из этой связки элемент?

Это что, взаимоисключающие понятия?

Собственно ответ как и в первом случае. Никак.
Прийдется обновить модель - другими словами - жопа!
Записан
Druxa
Гость
« Ответ #2 : Сентябрь 04, 2007, 11:55 »

А можно по подробнее? Мне нужно что бы пользователь нажимал кнопку Удалить и у него удалялась строка в таблице(в виде и модели). Если не затруднит приведите пример. Можно же менять данные отдельных ячеек. Почему нет метода удаления строки?
« Последнее редактирование: Сентябрь 04, 2007, 12:06 от Druxa » Записан
denka
Гость
« Ответ #3 : Сентябрь 04, 2007, 12:30 »

Пишеш оброботчик для своей кнопки удалить а в нем:
Код:
...
model.removeRows( номер_удаляемой_строки, 1 )
...
Номер удаляемой строки у тя может быть например текущий выбраный элемент таблицы:
Код:
номер_удаляемой_строки = view.currentIndex().row();
Записан
Alexandr Az
Гость
« Ответ #4 : Сентябрь 04, 2007, 12:45 »

А можно по подробнее?

Ты бы хоть версию куте указал. В 4.3 более менее нормально стало...

model.removeRow(номер строки);
Обрати внимание на editStrutegy, имхо при мануле глючит.....
Записан
Druxa
Гость
« Ответ #5 : Сентябрь 05, 2007, 12:10 »

Спасибо, то чно нужно.
Записан
Flakes
Гость
« Ответ #6 : Август 18, 2008, 17:12 »

не совсем понял ответ от Alexandr Az. Никак не сопоставить положение курсора QTableView и записи в БД? Более точно, как мне добраться до например ID текущей выбранной строки, ID спрятан через model->removeColumn(0);

UPD: что то через QSqlTableModel::data() проглядывается  Улыбающийся
« Последнее редактирование: Август 18, 2008, 18:02 от Flakes » Записан
ритт
Гость
« Ответ #7 : Август 18, 2008, 19:49 »

не плохо ты "прячешь" столбцы...удалением

int ID = model->data(model->index(row, 0), Qt::EditRole).toInt();
Записан
Flakes
Гость
« Ответ #8 : Август 18, 2008, 22:17 »

не плохо ты "прячешь" столбцы...удалением

int ID = model->data(model->index(row, 0), Qt::EditRole).toInt();

ага, я понял, что лучше их прятать в tableView, а не удалять в модели Строит глазки вообщем разобрался, через data() все и сделал
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 21.