crossplatform.ru

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

> изменения данных в QTableView и установка setWindowModified(true);
rrmini
  опции профиля:
сообщение 3.2.2010, 11:28
Сообщение #1


Студент
*

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

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




Репутация:   0  


Имеется связка model - view:

CODE
QSqlTableModel *model = new QSqlTableModel(0);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
.....
QTableView *view = new QTableView(0);
view-> setModel(model);
view-> setWindowTitle(trUtf8("Таблица[*]"));
view-> setWindowModified(false);
....


Задача:
1. При изменении пользователем данных в ячейках( одной ячейки) таблицы или при добавлении(удалении) строки установить view->setWindowModified(true);
2. После сохранения изменений if(model->submitAll()) view->setWindowModified(false);

Я так понимаю при уловии задачи 1 должен генериться какой-то сигнал. который можно отловить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
rrmini
  опции профиля:
сообщение 3.2.2010, 12:46
Сообщение #2


Студент
*

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

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




Репутация:   0  


Спасибо, чудно работает!

Цитата
только вот это не понятно, ты хочешь представление сделать окном верхнего уровня? Тогда тебе прийдётся его удалять вручную либо устанавливать атрибут Qt::WA_DeleteOnClose


У меня две таблицы :
1. "Документы" : id , дата, клиент, водитель-машина;
2. "Маршруты" : id, document_id, маршрут, ед_изм(км или час), количество, сумма;

В одном документе может быть несколько маршрутов.
Для ввода записей в эти таблицы я делаю диалоговое окно в котором есть

mapper = new QDataWidgetMapper(this);
mapper->setModel(docModel); // для сязи с таблицей "Документы"

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

model = new QSqlRelationalTableModel; // для связи с таблицей "Маршруты"
model->setFilter(QString("documentid = %1").arg(docNumber)); // отображаю маршруты только данного документа
ui->tableView->setModel(model); // пользовался дизайнером

для вызова диалога я создаю объект:

OrderFormDialog dialog(documentModel, docNumber, this);
dialog.exec();

При закрытии диалога я так понимаю объект dialog удаляется ? поправьте , если я ошибаюсь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 22.1.2025, 10:40