Russian Qt Forum

Программирование => Базы данных => Тема начата: Ignotus от Август 28, 2010, 19:29



Название: Как обработать сигнал QAbstractItemModel::dataChanged()?
Отправлено: Ignotus от Август 28, 2010, 19:29
Хочу по сигналу dataChanged() определить, изменена ли таблица на основе QSqlRelationalTableModel.

Пробовал притулить таким образом:

Код
C++ (Qt)
bool isChanged;
...
QObject::connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(tableChanged()));
...
void MainWindow::tableChanged()
{
isChanged = true;
}
 
void MainWindow::ifSave()
{
if (isChanged == true)
{
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::No);
msgBox.setDefaultButton(QMessageBox::Save);
 
switch (msgBox.exec())
{
case QMessageBox::Save:
model->submitAll();
break;
case QMessageBox::No:
break;
}
}
}
 

Но код в ifSave() не обрабатывается.

P.S. перенесите пожалуйста тему в раздел Qt-> база данных


Название: Re: Как обработать сигнал QAbstractItemModel::dataChanged()?
Отправлено: crossly от Август 31, 2010, 08:50
гм... а какое отношение ifsave() имеет к dataChanged... ??


Название: Re: Как обработать сигнал QAbstractItemModel::dataChanged()?
Отправлено: break от Сентябрь 01, 2010, 01:12
Вроде как dataChanged() и имиттится когда модель изменена...
В общем я не понял вопроса.