在QLineEdit中输入更改

时间:2014-05-26 19:40:17

标签: c++ qt sqlite qtgui qlineedit

我在一个简单的程序中有一个QlineEdit和一个QTableView。

我将一个表(例如person)从SQLite加载到tableView。

我想要一个事件或其他任何东西,当我在lineEdit中键入tableView时会根据它进行更改。

例如,如果表人具有填充的字段名称:

  1. 迈赫兰
  2. mehsa
  3. mahid
  4. 纳金
  5. OMID
  6. 我想按下" m"所有以" m"开头的名字,如mehran,mehsa,mahid show on tableView。当我按下一个键例如" e"时,只有mehran和mehsa在tableView上显示,依此类推。

1 个答案:

答案 0 :(得分:1)

您需要像on this signal这样的连接:

connect(lineEdit, &QLineEdit::textChanged, [=](const QString &string) {
    QSqlQuery query(QString("SELECT %1 FROM ..").arg(string));
    while (query.next()) {
        QStringList stringList = query.value(0).toStringList();
        updateTableView(stringList);
    }
});

此时,您还需要在qmake项目文件中添加以下行以获取新的信号槽语法:

CONFIG += c++11