Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QSqlTableModel::removeRow - не отображаются данные


Автор: Alca 16.3.2013, 17:48
Windows 7 SP1 x64
Qt 5.0.1 debug
MinGW 4.7.2
SQLite

Код

// QSqlTableModel
QSqlTableModel model = new QSqlTableModel(this, _m_dbDatabase);
model->setTable(DB_T_PERSON);
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();

// QTableView
m_Ui.tvInfo->setModel(model);
m_Ui.tvInfo->hideColumn(0); // don't show the DB_F_ID
// m_Ui.tvInfo->setColumnWidth(0, 40);
m_Ui.tvInfo->verticalHeader()->setVisible(true);
m_Ui.tvInfo->verticalHeader()->setDefaultSectionSize(TABLEVIEW_ROW_HEIGHT);
m_Ui.tvInfo->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_Ui.tvInfo->setSelectionBehavior(QAbstractItemView::SelectRows);
m_Ui.tvInfo->setSelectionMode(QAbstractItemView::SingleSelection);
m_Ui.tvInfo->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
m_Ui.tvInfo->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
m_Ui.tvInfo->setSortingEnabled(true);
m_Ui.tvInfo->sortByColumn(0, Qt::AscendingOrder);

m_Ui.tvInfo->show();

// remove row
model->removeRow(targetRow, QModelIndex());

Почему появляется этот знак "!", почему не отображаются изменения (см. скриншот)?
Кстати, та же лажа со вставкой записи, если перезапустить приложение, то данные отображается корректно.

Автор: Alca 17.3.2013, 13:39
Вот минимальный пример

Автор: Alca 20.3.2013, 15:20
Код

model->select();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)