QT中实现类似网页搜索的自动出现下拉提示
来源:互联网 发布:海南知和行书局 编辑:程序博客网 时间:2024/06/05 16:30
要实现一个在输入框中输入字时,自动出现一个下拉框提示相关的搜索词语。在网上搜了一下,没搜到有QT中相关的实现,就自己动手实现了一个。
class HintList : public QListWidget
#include "HintList.h"HintList::HintList(QWidget *parent) : QListWidget(parent){ myTimer=new QTimer(); myTimer->start(2000); connect(myTimer,SIGNAL(timeout()),this,SLOT(checkSlots()));}HintList::~HintList(){}void HintList::ShowUI(){ this->show(); myTimer->stop(); myTimer->start();}void HintList::keyPressEvent(QKeyEvent *event){ if(event->key() == Qt::Key_Down) { this->setCurrentRow(this->currentRow()+1); myTimer->stop(); myTimer->start(); } else if(event->key() == Qt::Key_Up) { this->setCurrentRow(this->currentRow()-1); myTimer->stop(); myTimer->start(); } else if(event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) { emit choiceStr(this->currentItem()->text()); this->close(); }}void HintList::checkSlots(){ myTimer->stop(); this->close();}
实现:
m_list_hint= new HintList(this);m_list_hint->hide();connect(ui->lineEdit_fromStation,SIGNAL(textChanged(QString)),this,SLOT(flushFromStationListWidget(QString)));connect(m_list_hint,SIGNAL(clicked(QModelIndex)),this,SLOT(onClickedListWidget(QModelIndex)));connect(m_list_hint,SIGNAL(choiceStr(QString)),this,SLOT(changeFromStationText(QString)));……void Sale::flushFromStationListWidget(QString str){ m_list_hint->clear(); m_list_hint->addItem("dsa"); m_list_hint->addItem("eea"); m_list_hint->addItem("武汉a"); int x = ui->lineEdit_fromStation->x() + 4; int y = ui->lineEdit_fromStation->y() + 44; int w = ui->lineEdit_fromStation->width(); int h = m_list_hint->count() * 20 ; m_list_hint->setGeometry(x,y,w,h); m_list_hint->setCurrentRow(0); m_list_hint->ShowUI();}void Sale::keyPressEvent(QKeyEvent *event){ if(event->key() == Qt::Key_Down) { if(this->focusWidget() == ui->lineEdit_fromStation) { m_list_hint->setFocus(); m_list_hint->setCurrentRow(0); } }}void Sale::onClickedListWidget(QModelIndex index){ ui->lineEdit_fromStation->setText(m_list_hint->item(index.row())->text()); m_list_hint->hide();}void Sale::changeFromStationText(QString text){ ui->lineEdit_fromStation->setText(text);}
0 0
- QT中实现类似网页搜索的自动出现下拉提示
- 网页中文本框下拉选择输入与自动提示功能的实现
- easyUI实现类似搜索框关键词自动提示功能
- AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
- kendoComboBox 下拉搜索自动提示
- Android 下拉搜索提示框的实现
- js及ajax实现搜索下拉自动提示
- 像百度搜索框一样,在文本框中输入字符后,自动出现提示下拉框 [问题点数
- jquery+jsp+ajax实现类似的百度搜索下拉框
- AutoCompleteExtender控件实现类似百度,谷歌,雅虎的下拉提示
- Java 实现类似百度文本框的下拉提示
- 实现类似百度搜索框中模糊提示功能
- ext 类似百度、google搜索自动提示
- selenium(webdriver)--操作搜索功能的自动提示下拉列表
- AJAX实例二:实现类似Google的搜索提示【原著】
- wpf 实现 类似网页里的 输入提示
- 类似GOOGLE实现下拉框列表提示
- 搜索自动提示功能的实现
- maven仓库查询地址
- Android项目开发实战:倒计时
- Uvalive 6428 A+B(扩展欧几里得算法)
- 9.1筆記,系統分享,Fragment not attached to Activity
- leetcode 191: Number of 1 Bits
- QT中实现类似网页搜索的自动出现下拉提示
- stream_register_wrapper 注册一个用 PHP 类实现的 URL 封装协议 允许用户实现自定义的协议处理器和流
- iPhone第三节:UITableView(2)
- 下一代hadoop(Mapreduce),YARN/MRv2
- ios 的 工程内的多Targets有什么用
- 中兴2016机试题目
- Leetcode -- Bitwise AND of Numbers Range
- HDU 2045 不容易系列之(3)—— LELE的RPG难题 递推公式
- UVA 1624 打结