我试图让QTableView表现得像一个网格表,即底部总有一个空行,用户输入要插入的新记录。想想MS Access子窗体,或者在Web开发中我认为我们称之为内联编辑。
我正在使用Qt 4.7.4, 非常标准的代码:
model = new QSqlTableModel(this);
model->setTable("order_details");
models->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setFilter(QString("parent_id = '%1'").arg(ID->toString());
model->select();
model->insertRow(model->rowCount()); //worked womehow
//QSqlRecord rec = model->record();
//rec.setValue("fieldName", var); //useful for initializing some fields
//model->insertRecord(-1, rec); //internally call insertRow(rowCount()) then setRecord
ui->tblGrid->setModel(model);
如果将insertRow或insertRecord放入构造函数中,则不会发生任何事情。没有添加行。 但是,如果我创建一个调用其中任何一个按钮的按钮,则会添加一个新行但不可编辑。
要观察此尝试修改Qt's cached table example,添加insertRow()如果放入构造函数则不会执行任何操作。然而,在从按钮调用的插槽中,它将添加该行就好了。当然是不可编辑的。
所以我的问题是:
谢谢,
埃文