各位大侠,前几天问了:如何通过QTableView实现键盘操作行的插入。每插入一行,按回车键程序自动在QTableView最后插入一空行。以待编辑。
通过keyPressEvent事件查询,但按Enter后查入的行最后一个字段(图片中第6行的最后一格)没有保存进数据库,大概是因为QTableView中的输入格中要按Enter后才确认为输入了。代码和图片如下。void MyView::
keyPressEvent(
QKeyEvent *event)
{
QTableView::
keyPressEvent(event)
; /*无论加没加这句结果是一样的。*/
if(event->key()==
Qt::
Key_Return){
model->database().transaction();
if (
model->submitAll())
{
model->database().commit();
model->insertRow(
model->
rowCount());
}
else {
model->database().rollback();
QMessageBox::warning(
this,
tr(
"Cached Table"),
tr(
"The database reported an error: %1")
.arg(
model->lastError().text()));
}
}
}