qt种实现搜索栏功能
引言
在搜索欄種輸入要搜索的文本,就會(huì)出現(xiàn)相關(guān)聯(lián)的文本提示,這是可以通過鼠標(biāo)選中要搜索的文本,或者通過上下鍵選中要搜索的文本。
效果
效果圖如下所示:
實(shí)現(xiàn)
下面是相關(guān)的代碼實(shí)現(xiàn),讀者只需參考,理解其含義,然后自己結(jié)合自己的程序來編寫便可。
void LayoutListWidget::initCombox() {ui->comboBox->setView(new QListView());ui->comboBox->setLineEdit(ui->lineEdit);ui->comboBox->setEditable(true);ui->comboBox->setMaxVisibleItems(6);ui->comboBox->lineEdit()->setPlaceholderText(QStringLiteral("請(qǐng)輸入搜索的場景名稱")); }void LayoutListWidget::onUpdateSearchedList() {ui->comboBox->clear();ui->comboBox->addItems(m_layoutName);ui->comboBox->lineEdit()->clear();//清空默認(rèn)顯示在行編輯器中的文本,使其顯示提示信息QCompleter *pCompleter = new QCompleter(m_layoutName, this);ui->lineEdit->setCompleter(pCompleter);pCompleter->setCaseSensitivity(Qt::CaseInsensitive);ui->comboBox->setCompleter(pCompleter); }如果被檢索的庫不變更,在程序開始的時(shí)候便已經(jīng)加載了下拉列表種的字符串列表,則上述的第二個(gè)函數(shù)可以放在第一個(gè)函數(shù)種去實(shí)現(xiàn)。在搜索欄實(shí)現(xiàn)的過程中,創(chuàng)建了一個(gè)行編輯器和一個(gè)下拉列表,將行編輯器設(shè)置到下拉列表中,并向下拉列表中添加供檢索的所有的字符串,設(shè)置行編輯器和下拉列表的補(bǔ)全器,這樣在輸入的文字包含在被檢索庫中時(shí)就會(huì)出現(xiàn)提示欄,提示可供選則的字符串。但這個(gè)自動(dòng)補(bǔ)全器只能在文本字符串按照順序檢索,不能跳躍式檢索。也就是假如搜索的文本是突然,在搜索欄中輸入突,就會(huì)在列表提示突然,當(dāng)然是搜索庫中已經(jīng)含有突然,沒有就不會(huì)有任何提示欄出現(xiàn),當(dāng)輸入然的時(shí)候,不會(huì)出現(xiàn)補(bǔ)全的文本提示框。
搜索出來后,在搜索欄顯示選中的文本,這時(shí)點(diǎn)擊搜索按鈕,會(huì)執(zhí)行搜索到該字符串后要執(zhí)行的程序。
總結(jié)
以上是生活随笔為你收集整理的qt种实现搜索栏功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt5.13.2输出中文乱码
- 下一篇: 验证电脑的字节序