C++ 如何确切地使用beginInsertRows()?
当我像下面一样使用这个函数时C++ 如何确切地使用beginInsertRows()?,c++,qt,C++,Qt,当我像下面一样使用这个函数时 beginInsertRows() beginInsertRows: identifier not found 我是C++新手。如何调用此函数?我包括QtSql。 我应该包括一些特别的东西吗? 编辑: 我已经搜索了解决方案,它们都指向使用这个函数 正如我发布的。但我得到了这个错误 this->sqlModel2 = new QSqlQueryModel(); sqlTableModel = new QSqlTableModel(this);
beginInsertRows()
beginInsertRows: identifier not found
我是C++新手。如何调用此函数?我包括QtSql。
我应该包括一些特别的东西吗?编辑: 我已经搜索了解决方案,它们都指向使用这个函数 正如我发布的。但我得到了这个错误
this->sqlModel2 = new QSqlQueryModel();
sqlTableModel = new QSqlTableModel(this);
sqlTableModel->setTable("mytable");
sqlTableModel->select();
qDebug()<< sqlTableModel->lastError().text();
ui->listView->setModel(sqlTableModel);
ui->listView->setModelColumn(1);
QString name;
name= " My name";
QSqlQuery qryInsert;
QString mInsert "INSERT INTO mytable (:name) VALUES (:name)";
qryInsert.prepare(mInsert);
qryInsert.bindValue(":name",name);
beginInsertRows(QModelIndex(),0,1) ;
if(qryInsert.exec()){
qDebug()<<"Inserted";
result = "inserted";
}else{
qDebug()<<"Error inserting = "<<qry.lastError().text();
}
endInsertRows();
this->sqlModel2=new-QSqlQueryModel();
sqlTableModel=新的QSqlTableModel(本);
sqlTableModel->setTable(“mytable”);
sqlTableModel->select();
qDebug()lastError().text();
ui->listView->setModel(sqlTableModel);
ui->listView->setModelColumn(1);
QString名称;
name=“我的名字”;
QSqlQuery-qryInsert;
QString mInsert“插入mytable(:name)值(:name)”;
qryInsert.prepare(mInsert);
qryInsert.bindValue(“:name”,name);
beginInsertRows(QModelIndex(),0,1);
if(qryInsert.exec()){
qDebug()beginInsertRows()
是QAbstractItemModel
的方法,并且它是受保护的。因此,只有当您在其方法内部对QAbstractItemModel
进行子类化时,才能调用它。更多信息。您将不得不发布更多的代码。beginInsertRows()
是一个(受保护的)qabstractemmodel
的成员函数。您能再显示一点代码吗?请再显示一点上下文-哪个类?您从某个ItemModel继承吗?等等@Johny its在QMainWindow类中。这就是您的问题-正如我在回答中所写的,您只能在继承自qabstractemodel
的类中调用该方法Window
只是不执行此操作。请阅读文档: