当前位置: 代码迷 >> QT开发 >> 关于重写QSqlTableModel类事件的有关问题
  详细解决方案

关于重写QSqlTableModel类事件的有关问题

热度:69   发布时间:2016-04-25 04:53:53.0
关于重写QSqlTableModel类事件的问题
MySqlTableModel继承QSqlTableModel类。重载bool eventFilter(QObject *object, QEvent *event);函数。
重写:
bool MySqlTableModel::eventFilter(QObject *object, QEvent *event)
{

  if(event->type() ==QEvent::KeyRelease)
  {
  QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
  QMessageBox::information(NULL,tr("title"),tr("Can you tell me?"));
  }

  return QSqlTableModel::eventFilter(object, event);
}
创建:
model = new MySqlTableModel(this);
model->setTable("ServerType");
model->installEventFilter(this);
model->select(); //选取整个表的所有行
ui->tableView->setModel(model);

在我点击表修改某一个数据时。为什么不进重写的eventFilter中。



------解决方案--------------------
QSqlTableModel只提供数据,不负责和界面交互,这种方法肯定不行。

你需要理解Qt的模型视图结构才行。界面相关的由QTableView来处理
  相关解决方案