Qt之自定义检索框

Qt之自定义检索框

ID:37895964

大小:37.00 KB

页数:6页

时间:2019-06-02

Qt之自定义检索框_第1页
Qt之自定义检索框_第2页
Qt之自定义检索框_第3页
Qt之自定义检索框_第4页
Qt之自定义检索框_第5页
资源描述:

《Qt之自定义检索框》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Qt之自定义检索框1、效果展示今天这篇文章主要讲解的是自定义搜索框,不仅仅支持搜索,而且可以支持搜索预览,具体请看效果图1。网上也有一些比较简单明了的自定义搜索框,比如Qt之自定义搜索框,讲的也比较详细,不过本文的侧重点不仅仅是搜索,而且包括了检索功能。有兴趣的小伙伴可以看下步骤3的思路讲解。2、功能分析这个自定义搜索框支持输入一定的数据源,然后通过检索窗口进行搜索数据,匹配到的数据会优先展示到预览下拉框,预览窗口支持hover高亮整行。仔细阅读demo源码的同学可能就会发现其实这个搜搜框的左侧又一个按钮是可以点击的,但是目前还没有添加具体的点击功能。了解了这个控件的功能之后,如果觉得对你

2、有用,那么就可以接着继续往下看实现流程。回到顶部3、思路讲解问题分析:1、数据源存储在哪儿?怎么实现检索2、弹出式下拉框显示和隐藏控制?位置同步?3、鼠标hover状态的颜色设置?首先在讲解源码之前,我抛出了3个问题,有精力的同学可以先思考下这几个问题,然后在接着往下看,下边我也会逐一说明这个些问题。源码讲解:1、使用到的类:StockSortFilterProxyModel:过滤数据源,该model上的数据索引直接供视图展示StockTableView:自定义视图,用于显示预览数据StockListWidget:自定义搜索框StockItemDelegate:自定义委托,提供自定义绘图上

3、边4个类是完成自定义搜索框的自定义类,当然除了上述4个类以外,还用到了qt自带的一些类,更好的理解这些类,那么这个自定义控件的思路也就显得异常好理解。2、头文件说明委托:负责视图绘制复制代码1classIView;23structStockItemDelegatePrivate4{5intcolumn=1;//进度条所在列,下标从0开始6QTableView*parent=nullptr;7IView*view=nullptr;8};910classStockItemDelegate:publicQStyledItemDelegate11{12Q_OBJECT1314public:15St

4、ockItemDelegate(QTableView*parent=nullptr);16~StockItemDelegate(){};1718public:19voidsetView(IView*view);2021protected:22virtualvoidpaint(QPainter*painter23,constQStyleOptionViewItem&option24,constQModelIndex&index)constQ_DECL_OVERRIDE;2526virtualQSizesizeHint(constQStyleOptionViewItem&option,27co

5、nstQModelIndex&index)constQ_DECL_OVERRIDE;2829private:30QScopedPointerd_ptr;31};复制代码窗口布局:StockTableView是专门用来展示检索后的数据,StockListWidget是窗口布局复制代码1classIView2{3public:4virtualvoidSetMouseOver(int)=0;5};67classStockTableView:publicQTableView,publicIView8{9Q_OBJECT10public:11Sto

6、ckTableView(QStandardItemModel*model,QWidget*parent=0);1213public:14voidSetMouseOver(int);1516protected:17virtualvoidmouseMoveEvent(QMouseEvent*event)override;18virtualvoidleaveEvent(www.baiyuewang.netQEvent*event)override;19virtualvoidmousePressEvent(QMouseEvent*event)override;2021private:22intcu

7、rrHovered;23voiddisableMouseOver();2425private:26QStandardItemModel*m_pSourceModel;27};2829structStockListWidgetPrivate;3031classStockListWidget:publicQWidget,publicQAbstractNativeEventFilter32{33Q_OBJECT3435publ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。