我使用QSqlRelationalTableModel
从数据库中提取数据,并使用tableView
来显示数据。现在,当我更新数据库时,如何自动更新tableView
以显示它?我知道我需要使用函数dataChanged()
自动生成,但我不知道如何使用它?任何建议将不胜感激。
主要代码如下:
QSqlRelationalTableModel *model = new QSqlRelationalTableModel(NULL, db);
model->setTable(tableName);
model->select();
tableView->setModel(model);
tableView->show();
答案 0 :(得分:2)
不,不需要使用dataChanged()
。
每当数据库更新时,您只需要调用QSqlRelationalTableModel::select()
。这将从数据库重新填充模型,并自动更新正在使用它的视图。
model->select()
。 如果数据库是从其他应用程序更新的,则您必须使用PostgreSQL's event notification system之类的内容,使用{{3}订阅应用程序中的通知并在连接到QSqlDriver::subscribeToNotification()
信号的插槽中调用model->select()
。
您可以使用notification()
检查数据库中的通知是否受支持。