2

我有一个 lineExdit 和一个 tableView,我希望基于在 lineEdit 中输入文本来实时更新 tableView。

void updateTableView(QString *st)
{
    QSqlQuery * qry = new QSqlQuery(mydb);

    qry->prepare("select * from Poems where Title like ?%");
    qry->addBindValue(st);
    qry->exec();
4

1 回答 1

3

您在不必要时滥用指针,例如QSqlQuery使用动态内存创建它,并且您没有消除它,与QString.

假设QTableView模型是 aQSqlQueryModel那么您应该执行以下操作:

...
// constructor
    connect(your_le, &QLineEdit::textChanged, this, &YourClass::updateTableView);
...

void updateTableView(const QString & st)
{
    QSqlQuery query(mydb);
    query.prepare("select * from Poems where Title like ?");
    query.addBindValue(QString("%1%").arg(st));
    query.exec();
    your_QSqlQueryModel->setQuery(query);
}
于 2018-07-31T17:18:23.483 回答