通过 QLineEdit 过滤查询并更新 QSqlQueryModel
Filtering query by QLineEdit and updating QSqlQueryModel
我有一个 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();
你在不必要的时候滥用指针,例如QSqlQuery
是使用动态内存创建它,而你没有消除它,QString
也是如此。
假设 QTableView
模型是 QSqlQueryModel
那么您应该执行以下操作:
...
// 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);
}
我有一个 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();
你在不必要的时候滥用指针,例如QSqlQuery
是使用动态内存创建它,而你没有消除它,QString
也是如此。
假设 QTableView
模型是 QSqlQueryModel
那么您应该执行以下操作:
...
// 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);
}