QT使用QComBox和QLineEdit實現(xiàn)模糊查詢功能
一、概述
在Qt中,可以通過QComboBox和QLineEdit實現(xiàn)模糊查詢的功能。模糊查詢是指根據(jù)用戶輸入的文本,在下拉框的選項中進行模糊匹配,并動態(tài)地顯示匹配的選項。
二、基礎(chǔ)知識
1、QCompleter
(1)QCompleter 是 Qt 框架中提供的一個用于自動補全和模糊搜索的類。QCompleter 可以與輸入框(如 QLineEdit)一起使用,為用戶輸入的文本提供自動補全的功能。
(2)QCompleter 的主要作用是為一個模型(例如 QStringListModel 或 QStandardItemModel)提供自動補全的功能。它可以根據(jù)用戶在輸入框中輸入的文本,動態(tài)地過濾模型中的項,并將過濾結(jié)果作為候選項顯示在輸入框下方的彈出窗口中。
2、QStyledItemDelegate
(1)QStyledItemDelegate 是 Qt 框架中提供的一個用于自定義繪制和編輯每個項的委托類。它可以與諸如 QListView、QTableView、QTreeView 等控件一起使用,用于自定義項的外觀和編輯行為。
(2)QStyledItemDelegate 的主要作用是控制視圖中每個項的繪制和編輯方式,以實現(xiàn)自定義的外觀和交互效果。
三、UI界面搭建

四、具體實現(xiàn)
1、MainWindow.h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QEvent>
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//模糊搜索
void obscureSearch();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H2、MainWindow.cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QCompleter>
#include <QListView>
#include <QStyledItemDelegate>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
obscureSearch();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::obscureSearch()
{
QStringList list;
list << "RCV_01" << "RCV_02" << "RCV_03" << "RCV_04";
ui->comboBox->addItems(list);
QString style = QString("QListView {"
"font-family: \"Arial\";"
"font-size: 13px; "
"outline: 0px;}"
"QListView::item {"
"padding: 3px 0x 3px 5px;"
"border-width: 0px;}"
"QListView::item:selected {"
"background-color: #004EA2;}"
"QListView::item:hover {"
"background-color: #E5F1FB}");
ui->comboBox->setView(new QListView());
ui->comboBox->setEditable(true);
ui->comboBox->setLineEdit(ui->lineEdit);
ui->comboBox->setMaxVisibleItems(5);
ui->comboBox->view()->setStyleSheet(style);
QCompleter *pCompleter = new QCompleter(list, this);
QStyledItemDelegate *d = new QStyledItemDelegate;
pCompleter->popup()->setItemDelegate(d);
pCompleter->popup()->setStyleSheet(style);
pCompleter->setCaseSensitivity(Qt::CaseInsensitive);
ui->comboBox->setCompleter(pCompleter);
ui->lineEdit->setCompleter(pCompleter);
ui->lineEdit->clear();
}
五、實現(xiàn)效果

到此這篇關(guān)于QT使用QComBox和QLineEdit實現(xiàn)模糊查詢功能的文章就介紹到這了,更多相關(guān)QT模糊查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++?使用?new?創(chuàng)建二維數(shù)組實例
這篇文章主要介紹了C++?使用?new?創(chuàng)建二維數(shù)組實例的相關(guān)資料,需要的朋友可以參考下2023-01-01
C++實現(xiàn)LeetCode(210.課程清單之二)
這篇文章主要介紹了C++實現(xiàn)LeetCode(210.課程清單之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的示例代碼
無論是MFC框架還是QT框架,實現(xiàn)加載數(shù)據(jù)的等待效果都是很麻煩的,不像WEB端輕輕松松一句代碼就搞定了。本文將通過Qt實現(xiàn)邊加載數(shù)據(jù)邊顯示頁面的功能,需要的可以參考一下2022-01-01
C++設(shè)計模式編程中Facade外觀模式的使用實例解析
這篇文章主要介紹了C++設(shè)計模式編程中Facade外觀模式的使用實例解析,外觀模式的主要用途就是為子系統(tǒng)的復(fù)雜處理過程提供方便的調(diào)用方法,需要的朋友可以參考下2016-03-03

