Я получил lineExdit и tableView, я хочу живое обновление tableView, основанное на наборе текста в lineEdit.
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);
}
Других решений пока нет …