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);
                      
                          
                        
                            
                            
                          
                          
                            
                            
                  
                订阅专栏 解锁全文
                
            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
					2254
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            