редактирование элемента дерева не обновляет базу данных автоматически - PullRequest
0 голосов
/ 30 ноября 2018

В моей программе есть 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();
}

, но редактирование элемента в этом дереве не обновляет базу данных, и после перезапуска программы элемент остается прежним.Что я должен сделать, чтобы автоматически обновить базу данных с новым значением, отредактированным в дереве?заранее спасибо.

...