QT 实现QLineEdit输入的时候自动补全功能(附完整源代码)

QT 实现QLineEdit输入的时候自动补全功能


在 QT 中实现类似 QLineEdit 的自动补全功能可以通过 QCompleter 类来完成。以下是一个完整的示例代码,包含设置自动补全的逻辑和测试数据。
创建 QLineEdit 并设置自动补全
#include QApplication
#include
#include
#include
int main(int argc, char *argv[]) {
QApplication app(argc, argv);

// 创建 QLineEdit 控件
QLineEdit lineEdit;
lineEdit.setPlaceholderText("输入内容(自动补全)");

// 设置补全数据源(字符串列表)
QStringList wordList;
wordList << "apple" << "application" << "banana" << "book" << "computer";

// 创建 QCompleter 并绑定数据
QCompleter *completer = new QCompleter(wordList, &lineEdit);
completer->setCaseSensitivity(Qt::CaseInsensitive); // 不区分大小写
completer->setFilterMode(Qt::MatchContains); // 输入部分内容即可匹配

// 将自动补全功能绑定到 QLineEdit
lineEdit.setCompleter(completer);

lineEdit.show();
return app.exec();

}

使用自定义模型实现动态补全
如果需要更复杂的补全逻辑(如动态更新补全数据),可以继承 QAbstractItemModel 或使用 QStringListModel:

#include

// 绑定动态模型
QStringListModel *model = new QStringListModel(wordList, &lineEdit);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源代码大师

赏点狗粮吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值