sta*_*ame 0 database qt tableview
我用来QSqlRelationalTableModel从数据库中提取数据,并用来tableView显示它。现在,当我更新数据库时,如何tableView自动更新以显示它?我知道我需要使用函数dataChanged()来自动执行此操作,但我不知道如何使用它?任何建议将不胜感激。
主要代码如下:
QSqlRelationalTableModel *model = new QSqlRelationalTableModel(NULL, db);
model->setTable(tableName);
model->select();
tableView->setModel(model);
tableView->show();
Run Code Online (Sandbox Code Playgroud)
不,没有必要使用dataChanged()。
QSqlRelationalTableModel::select()您只需要在数据库更新时调用即可。这将从数据库中重新填充模型,并自动更新正在使用它的视图。
model->select(),您只需在应用程序中执行更新查询后调用即可。如果数据库是从另一个应用程序更新的,您将必须使用诸如PostgreSQL 的事件通知系统之类的东西,使用连接到信号的槽来QSqlDriver::subscribeToNotification()订阅您的应用程序的通知。model->select()notification()
您可以用来QSqlDriver::hasFeature(QSqlDriver::EventNotifications)检查是否支持来自数据库的通知。