程序运行截图如下:

代码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class QSortFilterProxyModel;
class QDataWidgetMapper;
class QStandardItemModel;namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();void onTableViewClicked(const QModelIndex &index);void filterBtnClicked();void upBtnClicked();void downBtnClicked();private:Ui::Widget *ui;QSortFilterProxyModel *filterModel;QDataWidgetMapper *mapper;QStandardItemModel *model;
};#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QStandardItemModel>
#include <QDebug>
#include <QSortFilterProxyModel>
#include <QDataWidgetMapper>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle("CSDN IT1995");connect(ui->filterPushButton,&QPushButton::clicked,this,&Widget::filterBtnClicked);connect(ui->upPushButton,&QPushButton::clicked,this,&Widget::upBtnClicked);connect(ui->downPushButton,&QPushButton::clicked,this,&Widget::downBtnClicked);model=new QStandardItemModel(4,2,this);model->setItem(0,0,new QStandardItem("球球"));model->setItem(0,1,new QStandardItem("99"));model->setItem(1,0,new QStandardItem("猪小明"));model->setItem(1,1,new QStandardItem("59"));model->setItem(2,0,new QStandardItem("锅盖"));model->setItem(2,1,new QStandardItem("111"));model->setItem(3,0,new QStandardItem("闰土"));model->setItem(3,1,new QStandardItem("999"));model->setHorizontalHeaderItem(0,new QStandardItem("姓名"));model->setHorizontalHeaderItem(1,new QStandardItem("成绩"));filterModel=new QSortFilterProxyModel(this);filterModel->setSourceModel(model);ui->tableView->setModel(filterModel);mapper=new QDataWidgetMapper(this);mapper->setModel(model);mapper->addMapping(ui->nameLineEdit,0);mapper->addMapping(ui->scoreLineEdit,1);mapper->toFirst();
}Widget::~Widget()
{delete ui;
}void Widget::onTableViewClicked(const QModelIndex &index)
{Q_UNUSED(index)
}void Widget::filterBtnClicked()
{QRegExp rx(ui->filterLineEdit->text());filterModel->setFilterRegExp(rx);
}void Widget::upBtnClicked()
{mapper->toPrevious();
}void Widget::downBtnClicked()
{mapper->toNext();
}

main.cpp

#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

Qt工作笔记-视图/模型以及过滤代理模型的使用相关推荐

  1. Qt工作笔记-视图(QGraphicsView)的放大和缩小(通过滚轮)

    程序运行截图如下: 关键的函数: 逻辑:通过滚轮事件,识别滚轮放大上移还是下移动,调用这个函数 源码如下: mygraphicsview.h #ifndef MYGRAPHICSVIEW_H #def ...

  2. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包

    原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...

  3. Qt工作笔记-QFileSystemModel创建文件系统信息模型

    程序运行界面如下: 总结下他的逻辑步骤: 1.实例化一个模型: 2.设置模型的根路径(要监视的路径): 3.为视图指定索引: 4.最后指定根索引: 代码如下: #include <QApplic ...

  4. Qt工作笔记-图形视图框架中的分组,以及添加平行拖动图元

    啥意思,感觉本人语文学得菜,不好描述. 直接看程序运行截图: 1.隐藏鼠标: 2.图元分组: 3.视图与场景坐标转换 程序源码如下: mygraphicsitem.h #ifndef MYGRAPHI ...

  5. Qt工作笔记-ListWidget拖动(拖拽)到QGraphicsScene【补坑】【Qt视图框架补坑】

    关于以前的这篇博文,进行补坑 https://blog.csdn.net/qq78442761/article/details/80957186 坑的位置在这,采用上面这篇博文的配法,无法得到图元在场 ...

  6. Qt工作笔记-右键删除视图中的Item【坐标映射】

    程序运行截图如下: 关键: 当处理场景中的图形项时,将坐标或者一个任意的形状从场景映射到图形项.或者从一个图形项映射到另一个图形项.或者从视图映射到场景,这些坐标变换都是很常用的.例如,在QGraph ...

  7. Qt工作笔记-在QTreeView上实现模型数据的拖拽

    运行截图如下: 逻辑是: 1.QTreeView开发拖拽功能. 2.在自定义模型中重写 flags(const QModelIndex &index) const mimeData(const ...

  8. Qt工作笔记-自定义QSortFilterProxyModel实现多列分别过滤

    程序运行截图如下: 原理,重写QSortFilterProxyModel类中的filterAcceptsRow即可: 源码如下: mysortfilterproxymodel.h #ifndef MY ...

  9. Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤

    目录 原理 例子 原理 例子 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_ ...

最新文章

  1. 如何安装rabbitmq
  2. 在IIS中写Python的CGI脚本
  3. 中国广电设备行业十四五运营模式与投资机遇研究报告2022版
  4. C# NHtmlFilter 帮你过滤Html危险脚本 防止XSS攻击
  5. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
  6. JAVA中获得一个月最大天数的方法(备忘)
  7. mysql5.5中的MaxValue关键字
  8. android 桌面视频播放器,ZY-Player ,一款跨平台桌面端视频资源播放器
  9. 有关linux用户和用户组管理的知识详解
  10. itextpdf 实现html转pdf中中文及图片base64的解决方法
  11. Mysql_多表查询练习
  12. 1705. 吃苹果的最大数目
  13. Android开发性能优化大总结
  14. 管理感悟:对事又对人
  15. 第二届(2021—2022学年)少年硅谷——全国青少年人工智能教育成果展示大赛
  16. 静态代理和动态代理详解
  17. Ubuntu 12.04安装QQ2012(12.10也可以,试过了的,其他版本没事过)
  18. codeblock-(no debugging symbols found)(已解决)
  19. php数据库redios_PHP开发者应了解的24个库
  20. 计算机主机检测不到耳机,win10电脑检测不到耳机怎么办_win10电脑检测不到耳机如何解决-系统城...

热门文章

  1. Js中Date的应用
  2. 想学好编程,别背代码!
  3. 来,我们谈谈怎么学好计算机科学与技术
  4. jx8net一定在所有的方方面面都更坚强更勇敢了吧
  5. 地域跨度入手的8zsb
  6. 反向链接推进技巧: 有技巧的“跟风”策略
  7. 不规则对话框的又一实现
  8. 用Python增强Excel的3大集成方法及用途
  9. 揭秘!月薪30K的大牛到底看了哪些视频?【共2000G】
  10. 直接写和放在函数中不同的R语言用法