网站定制 天津,郑州百度网站快速优化,门户网站开发工具,做大数据和网站开发的前景引言
本文有两个例子#xff0c;示例一中通过在combox中输入文本可以实现自动补全#xff0c;用户根据提示列表#xff0c;选中某一个信息#xff0c;作为要搜索的字符串。示例二中用户输入要搜索的文本在行编辑器中#xff0c;当输入的文本在搜索的字符串列表中时#…引言
本文有两个例子示例一中通过在combox中输入文本可以实现自动补全用户根据提示列表选中某一个信息作为要搜索的字符串。示例二中用户输入要搜索的文本在行编辑器中当输入的文本在搜索的字符串列表中时会出现相应的提示列表用户可选择提示列表中的字符串。示例二没有搜索按钮只是简单的根据输入的字符串可以检索到被搜索的列表中的字符串。
示例
项目的结构 示例一和示例二在同一个工程下没有只是用两个函数区分开了一个是下拉列表的搜索功能一个是行编辑器的搜索功能。下面看具体的实现。 代码部分 main.cpp
#include dialog.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;w.show();return a.exec();
}dialog.h
#ifndef DIALOG_H
#define DIALOG_H#include QDialog/********************************************功能描述1.根据输入的字符串进行匹配查找。注意Qt::MatchStartsWith----匹配开头Qt::MatchEndsWith----匹配结尾Qt::MatchContains----匹配内容
********************************************/QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACEclass Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent nullptr);~Dialog();
protected:void initCombox();//初始化comboxvoid initLineEdit();//初始化行编辑器
private slots:void on_searchBtn_clicked();//搜索按钮private:Ui::Dialog *ui;
};
#endif // DIALOG_Hdialog.cpp
#include dialog.h
#include ui_dialog.h
#include QCompleter
#include QDebugDialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Dialog)
{ui-setupUi(this);initCombox();initLineEdit();
}Dialog::~Dialog()
{delete ui;
}void Dialog::initCombox()
{QStringList strList;strListQStringLiteral(开始)ejisQStringLiteral(及深度)QStringLiteral(随时)QStringLiteral(技术的)sdsf;ui-comboBox-addItems(strList);ui-comboBox-setCurrentText();ui-comboBox-setEditable(true);QCompleter *completer new QCompleter(strList,this);completer-setFilterMode(Qt::MatchContains);//匹配内容ui-comboBox-setCompleter(completer);
}void Dialog::initLineEdit()
{QStringList strList;strListQStringLiteral(开始)ejisQStringLiteral(及深度)QStringLiteral(随时)QStringLiteral(技术的)sdsf;QCompleter *completer new QCompleter(strList,this);completer-setFilterMode(Qt::MatchContains);//匹配内容ui-lineEdit-setCompleter(completer);
}void Dialog::on_searchBtn_clicked()
{qDebug()QStringLiteral(被搜索的字符串是)ui-comboBox-currentText();
}ui文件中的结构 程序运行的结果 以上便是搜索功能但是值得注意的是 设置搜索的类型 Qt::MatchStartsWith----匹配开头 Qt::MatchEndsWith----匹配结尾 Qt::MatchContains----匹配内容 在函数setFilterMode中设置不同的参数会有不同的结果。