我的程序中有一个qtableview和Treeview。 qtableview代码是:
void MainWindow::tableShow(QString mystrings)
{
testModel = new QSqlTableModel(this);
testModel->setTable("parts");
if (mystrings=="")
{
testModel->setFilter("");
}
else
{
testModel->setFilter("type='"+mystrings+"'");
}
testModel->select();
ui->tableView->setModel(testModel);
}
它工作得很好,并且它具有的非常有趣的功能是您可以自动编辑单元格和数据库更新。 现在,我用以下代码制作了一个TreeView:
void MainWindow::treeView2()
{
QStandardItemModel *myModel= new QStandardItemModel;
QStandardItem *item = new QStandardItem();
item = myModel->invisibleRootItem();
myQuery.exec("select groupName from maingroup");
while(myQuery.next()){
QString temp =(myQuery.value(0).toString());
QStandardItem *parItem= new QStandardItem(temp);
item->appendRow(parItem);
QSqlQuery childqry;
childqry.exec("select sub from subgroup where main = '"+temp+"'");
while(childqry.next()){
QStandardItem *childItem= new QStandardItem(childqry.value(0).toString());
parItem->appendRow(childItem);
}
}
ui->treeView->setModel(myModel);
ui->treeView->expandAll();
}
但是在此树视图中编辑项目不会更新数据库,并且在重新启动程序后,该项目与以前一样。我应该怎么做才能用在Treeview中编辑的新值自动更新数据库? 预先感谢。