crossplatform.ru

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

> QSqlTableModel+QListView добавление новой записи вручную..., хнык :(
LE0N
  опции профиля:
сообщение 17.3.2009, 6:19
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 10.3.2009
Из: Беларусь
Пользователь №: 604

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




Репутация:   0  


Имеется простенькая задача - при нажатии на кнопку "добавить" нужно добавить ещё одну запись в модель.
Редактирование произвести через QListView. Всё бы хорошо. Всё добавляется. Кроме одного - мне нужно на ходу в другие ( не редактируемые QListView поля, добавить свои переменные...
НИ ХЕРА НЕ ВЫХОДИТ! Уже пол ночи с этим колупаюсь!
Вот, собственно, слот с данным действием. (Заменил QListView, на QTableView ноль реакции, ещё и неприятные визуальные эффекты стали возникать...).
void admin_products::add_new_product() {
    QModelIndex insertIndex = ui.tableView->currentIndex();
    int row = insertIndex.row() == -1 ? 0 : insertIndex.row();
    this->products_model->insertRow(row);
    this->products_model->record(row).setValue(2,this->selected_product_type_id);
    insertIndex = this->products_model->index(row, 0);
    ui.tableView->setCurrentIndex(insertIndex);
    ui.tableView->edit(insertIndex);
}

Кроме(внутри функции, приведённой выше):
    this->products_model->insertRow(row);
    this->products_model->record(row).setValue(2,this->selected_product_type_id);

Пробывал и insertRecord...Ноль реакции. В таблицу попадает полностью пустая запись...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
LE0N
  опции профиля:
сообщение 17.3.2009, 9:43
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 10.3.2009
Из: Беларусь
Пользователь №: 604

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




Репутация:   0  


Цитата
Если так QSqlRecord record( int ), то ты изменяешь локальную копию записи.

Да хоть так пишу... Разницы НОЛЬ!
    QSqlRecord *r=new QSqlRecord();
    r->setValue(1,"Новый продукт");
    r->setValue(2,this->selected_product_type_id);
    this->products_model->insertRecord(row,*r);

[offtopic]
ЗЫ. маленький ликбез...Правильно ли я понял, что если передаёшь ссылку на переменную, инициализированную локально (QSqlRecord bla;) в какую-нибудь функцию, то она убивается после того, как функция, в которой она инициализировалась, завершается? Если это так. То как в последствии поступают тру Си-Плюс-Плюснеги, когда им требуется уничтожить эту самую QSqlRecord, инициализированную через new ? Создают свойство и убивают в деструкторе? Даже если эта QSqlRecord используется в одном месте ? =\
ЗЫ.ЗЫ. Перехожу с чистого СИ, на СИ++ QT :)
[/offtopic]

Сообщение отредактировал LE0N - 17.3.2009, 9:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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