程序运行截图如下:

代码如下:

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. css3 点击爆炸下落
  2. .NET 7 预览版 2 已发布,NativeAOT 正式可用
  3. Windows系统下彻底卸载MySQL数据库
  4. Cppunit 源码 SynchronizedObject
  5. 前端学习(1313):get请求参数
  6. mysql 取交集 php_mysql 查询结果取交集的方法
  7. “未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
  8. 解决wireshark打开错误
  9. ElasticSearch Client详解
  10. 小程序webview 页面被放大_Android中WebView加载的网页被放大的解决办法
  11. 浅析信号与系统2(离散时间复指数序列的周期性质)
  12. 极米H5多少流明?采用新亮度标准的极米H5怎么样?性价比高吗?
  13. transforms及Compose
  14. 数码管段码代码查询工具
  15. java 泛型中的上界(extend)和下界(super)
  16. Java集合(超详细-含源码)
  17. 【mcuclub】矩阵键盘
  18. Rockchip rv1126平台在gstreamer1中添加OpenCv实现视频流负片的效果
  19. 知乎圆桌论坛:设计就是生产力
  20. 职业经理人管理素养提升课程

热门文章

  1. 轻松搞定 Nginx 配置代码的神器!
  2. 如果让你选择计算机本科最重要的三门课,会选什么?高手都选他们!
  3. 做数据分析还在死磕Excel?用这个简单工具,摆脱复杂函数和公式
  4. Python中的错误处理
  5. MySQL数据同步的一个很初级运用
  6. 创建一个Windows Service应用程序
  7. 超实用编程技术指南!为什么你还学不会一门编程语言?
  8. 下班到点想走,但老员工都没动,怎么办?
  9. 大数据时代,前端开发者该如何提升自身竞争力(附教程视频)
  10. vlc集成c#_C#WinForm程序调用VLC异常