Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >QML 用QSortFilterProxyModel实现搜索功能

QML 用QSortFilterProxyModel实现搜索功能

作者头像
饶文津
发布于 2020-06-02 07:07:32
发布于 2020-06-02 07:07:32
1.6K00
代码可运行
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏
运行总次数:0
代码可运行

c++部分的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QtQml>
...
#include "bookmodel.h"
int main(int argc, char *argv[])
{
    ...
    qmlRegisterType<BookModel>("Backend", 1, 0, "BookModel");//向qml注册类型

    BookModel *bookModel = new BookModel();//这是自己定义的类
    QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel();
    ...
    bookModel->read(io->text()["book"]);//io是自己定义的读取json的类
    QQmlApplicationEngine *engine = new QQmlApplicationEngine();

    proxyModel->setSourceModel(bookModel);
    //向qml传递变量
    engine->rootContext()->setContextProperty("bookModel", bookModel);
    engine->rootContext()->setContextProperty("proxyModel", proxyModel);

    engine->load(QUrl(QLatin1String("qrc:/main.qml")));

    return app.exec();
}

qml部分的代码: Search是自己写的一个搜索框

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import QtQuick 2.7
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.1
import QtQuick.Controls.Universal 2.1
import QtQuick.Window 2.1
import Backend 1.0
LDialog{//LDialog是自己修改过的的对话框Dialog
    title: "查找"
    width: 460
    height: 180
    signal search(int range, string text)
    Row{
        spacing: 20
        ComboBox{
            id: combo
            model:[qsTr("书名"),qsTr("出版社"),qsTr("作者"),qsTr("简介"),qsTr("购书日期"),qsTr("id"),qsTr("ISBN号"),qsTr("价格")]
        }
        TextField {
            id: word
            width: 200
        }
        Button {
            id: searchBtn
            text: qsTr("查找")

            onClicked: {
                var comap=new Array(BookModel.NameRole,BookModel.PublishRole,BookModel.AuthorRole,
                BookModel.BriefRole,BookModel.BuyTimeRole,BookModel.IdRole,
                    BookModel.IsbnRole,BookModel.PriceRole);//这里的Role是BookModel类里面的一个enum
                search(comap[combo.currentIndex],word.text);
            }
        }
    }
}

使用时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Search{
        id: findBookDialog
        onSearch: {
            proxyModel.filterRole=range;//这个filterRole是proxyModel搜索的范围,也就是指定BookModel中的一个属性
            proxyModel.setFilterFixedString(text);//设置搜索内容
            bookView.model=proxyModel;//设置展示的内容为搜索筛选后的
        }
        onRejected: {//取消时显示原来的内容
            bookView.model=bookModel;
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SVM之使用核函数的SMO算法
对于数据集非线性可分的情况,要使用SVM,必须先用核函数将数据从低维空间映射到高维空间,转化成易于分离器理解的形式。核函数并不仅仅应用于SVM,很多其它的机器学习算法也会用到核函数。
用户6021899
2019/08/28
7810
SVM之使用核函数的SMO算法
【机器学习与实现】支持向量机SVM
图中深蓝色线便是决策边界,也称分离超平面;两条虚线之间宽度叫做间隔 (margin)。支持向量机的优化目标为——间隔最大化。
Francek Chen
2025/01/23
2190
【机器学习与实现】支持向量机SVM
【机器学习实战】第6章 支持向量机
本文介绍了基于支持向量机(SVM)的图像分类算法,该算法可以自动提取图像特征,并通过对提取的特征进行分类,从而实现图像识别的功能。在具体实现中,可以使用不同的核函数来对图像特征进行处理,以达到更好的分类效果。同时,本文还介绍了如何使用Python的Scikit-learn库来实现该算法,并给出了详细的代码示例。通过在多个图像集上的测试,该算法能够实现较高的识别准确率,具有较好的应用前景。
片刻
2017/12/29
1.1K0
【机器学习实战】第6章 支持向量机
Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM
版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 https://blog.csdn.net/c406495762/article/details/78072313
Jack_Cui
2019/05/25
6680
Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM
机器学习-21:MachineLN之SVM源码
其实很多事情一定要找好自己的节奏,因为你会发现你不会的东西太多了,千万不要被带跑了。
MachineLP
2022/05/09
3020
机器学习 学习笔记(9)支持向量机
函数间隔,对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的函数间隔为:
2018/09/03
7070
机器学习 学习笔记(9)支持向量机
【收藏】支持向量机原理详解+案例+代码!【点击阅读原文下载】
或许你已经开始了自己的探索,听说过线性可分、核心技巧、核函数等术语。支持向量机(SVM)算法的核心理念非常简单,而且将其应用到自然语言分类任务中也不需要大部分复杂的东西。
昱良
2019/07/04
9380
机器学习之支持向量机—SVM原理代码实现
本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html
用户7225427
2020/09/03
3.6K0
机器学习之支持向量机—SVM原理代码实现
《机器学习实战》 - 支持向量机(SVM)
SVM有很多实现,这里仅关注其中最流行实现:序列最小优化(Sequential Minimal Optimization,SMO)。
yiyun
2022/04/01
8740
《机器学习实战》 - 支持向量机(SVM)
100天搞定机器学习|Day16 通过内核技巧实现SVM
再简单回顾一下svm算法的思路,详细推导请看前情回顾相关内容,或在文末下载之前推荐的《理解SVM 的三层境界》PDF版。
统计学家
2019/05/14
8040
100天搞定机器学习|Day16 通过内核技巧实现SVM
支持向量机原理篇之手撕线性SVM
Python版本: Python3.x 运行平台: Windows IDE: Sublime text3 一、前言 说来惭愧,断更快半个月了,本打算是一周一篇的。感觉SVM瞬间难了不少,推导耗费了很多时间,同时身边的事情也不少,忙了许久。本篇文章参考了诸多大牛的文章写成的,对于什么是SVM做出了生动的阐述,同时也进行了线性SVM的理论推导,以及最后的编程实践,公式较多,还需静下心来一点一点推导。 本文出现的所有代码,均可在我的github上下载,欢迎Follow、Star:https://githu
机器学习算法工程师
2018/03/06
2K0
支持向量机原理篇之手撕线性SVM
简单粗暴理解支持向量机(SVM)及其MATLAB实例
SVM已经是非常流行、大家都有所耳闻的技术了。网络上也有很多相关的博客,讲解得都非常详细。如果你要从零开始推导一个SVM,细致抠它全程的数学原理,我建议可以阅读此篇文章:Zhang Hao的《从零构建支持向量机》。因此本文就不做过多的枯燥的数学原理的讲解。
全栈程序员站长
2022/09/06
3.2K0
简单粗暴理解支持向量机(SVM)及其MATLAB实例
机器学习算法|支持向量机(Support Vector Machine,SVM)
机器学习(MachineLearning),作为计算机科学的子领域,是人工智能领域的重要分支和实现方式。
阿巴阿巴-
2025/03/03
9110
SVM之完整版SMO算法
本篇介绍完整版的SMO算法,不带核函数,和上篇的简化版一样,只适用于基本线性可分的数据集。但其运行速度会比简化版快很多。在这两个版本中,实现alpha的更改和代数运算的优化环节一模一样。在优化过程中,唯一的不同是alpha的选择方式。
用户6021899
2019/08/23
1.3K0
SVM之完整版SMO算法
SVM笔记
SVM(Support Vector Machine)是一种寻求最大分类间隔的机器学习方法,广泛应用于各个领域,许多人把SVM当做首选方法,它也被称之为最优分类器,这是为什么呢?这篇文章将系统介绍SVM的原理、推导过程及代码实践。
努力努力再努力F
2018/09/11
1.2K0
SVM笔记
Python3《机器学习实战》学习笔记(九):支持向量机实战篇之再撕非线性SVM
版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 https://blog.csdn.net/c406495762/article/details/78158354
Jack_Cui
2019/05/25
7950
Python3《机器学习实战》学习笔记(九):支持向量机实战篇之再撕非线性SVM
支持向量机(Support Vector Machine)支持向量机
linear regression , perceptron learning algorithm , logistics regression都是分类器,我们可以使用这些分类器做线性和非线性的分类,比如下面的一个问题:
西红柿炒鸡蛋
2018/09/07
2.4K0
SVM之简化版SMO算法
SVM有很多实现,本篇关注其中最常用的一种,即序列最小优化(Sequential Minimal Optimization, 即SMO,算法的数学逻辑上一篇有介绍)算法。
用户6021899
2019/08/21
1.1K0
SVM之简化版SMO算法
【ML】支持向量机(SVM)从入门到放弃再到掌握
朋友,你通过各种不同的途经初次接触支持向量机(SVM)的时候,是不是会觉得这个东西耳熟能详,感觉大家都会,却唯独自己很难理解? 每一次你的老板或者同仁让你讲解SVM的时候,你觉得你看过这么多资料,使用过这么多次,讲解应该没有问题,但偏偏在分享的时候结结巴巴,漏洞百出? 每一次机器学习相关的面试在问到支持向量机(SVM)的时候,尽管你觉得你都准备好了,可是一次又一次败下阵来,以至于觉得问那些问题的人(是不是脑子有…)是那么的厉害,每一次都能精准发觉到你的不足和漏洞,让你怀疑你掌握的是假的SVM,然后让你怀疑人生? 那还等什么,快来看看这篇文章吧,原价998,现在只要。。。(不好意思,扯偏了。)
全栈程序员站长
2022/09/06
5530
【ML】支持向量机(SVM)从入门到放弃再到掌握
支持向量机及Python代码实现
做机器学习的一定对支持向量机(support vector machine-SVM)颇为熟悉,因为在深度学习出现之前,SVM一直霸占着机器学习老大哥的位子。他的理论很优美,各种变种改进版本也很多,比如
机器学习AI算法工程
2018/03/12
1.5K0
支持向量机及Python代码实现
推荐阅读
相关推荐
SVM之使用核函数的SMO算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验