qt种实现搜索栏功能
生活随笔
收集整理的這篇文章主要介紹了
qt种实现搜索栏功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言
在搜索欄種輸入要搜索的文本,就會出現相關聯的文本提示,這是可以通過鼠標選中要搜索的文本,或者通過上下鍵選中要搜索的文本。
效果
效果圖如下所示:
實現
下面是相關的代碼實現,讀者只需參考,理解其含義,然后自己結合自己的程序來編寫便可。
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("請輸入搜索的場景名稱")); }void LayoutListWidget::onUpdateSearchedList() {ui->comboBox->clear();ui->comboBox->addItems(m_layoutName);ui->comboBox->lineEdit()->clear();//清空默認顯示在行編輯器中的文本,使其顯示提示信息QCompleter *pCompleter = new QCompleter(m_layoutName, this);ui->lineEdit->setCompleter(pCompleter);pCompleter->setCaseSensitivity(Qt::CaseInsensitive);ui->comboBox->setCompleter(pCompleter); }如果被檢索的庫不變更,在程序開始的時候便已經加載了下拉列表種的字符串列表,則上述的第二個函數可以放在第一個函數種去實現。在搜索欄實現的過程中,創建了一個行編輯器和一個下拉列表,將行編輯器設置到下拉列表中,并向下拉列表中添加供檢索的所有的字符串,設置行編輯器和下拉列表的補全器,這樣在輸入的文字包含在被檢索庫中時就會出現提示欄,提示可供選則的字符串。但這個自動補全器只能在文本字符串按照順序檢索,不能跳躍式檢索。也就是假如搜索的文本是突然,在搜索欄中輸入突,就會在列表提示突然,當然是搜索庫中已經含有突然,沒有就不會有任何提示欄出現,當輸入然的時候,不會出現補全的文本提示框。
搜索出來后,在搜索欄顯示選中的文本,這時點擊搜索按鈕,會執行搜索到該字符串后要執行的程序。
總結
以上是生活随笔為你收集整理的qt种实现搜索栏功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt5.13.2输出中文乱码
- 下一篇: 验证电脑的字节序