首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2012-04-14 
关于重写QSqlTableModel类事件的问题MySqlTableModel继承QSqlTableModel类。重载bool eventFilter(QObject

关于重写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来处理

热点排行