Qt工作笔记-视图/模型以及过滤代理模型的使用
程序运行截图如下:
代码如下:
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工作笔记-视图/模型以及过滤代理模型的使用相关推荐
- Qt工作笔记-视图(QGraphicsView)的放大和缩小(通过滚轮)
程序运行截图如下: 关键的函数: 逻辑:通过滚轮事件,识别滚轮放大上移还是下移动,调用这个函数 源码如下: mygraphicsview.h #ifndef MYGRAPHICSVIEW_H #def ...
- Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包
原理以及运行 原理是因为QJsonDocument提供了一个函数toJson 可以直接把Json数据转成QByteArray,这样就可以直接发送数据包,然后再按照常规方法解析即可,本源码中含解析内容, ...
- Qt工作笔记-QFileSystemModel创建文件系统信息模型
程序运行界面如下: 总结下他的逻辑步骤: 1.实例化一个模型: 2.设置模型的根路径(要监视的路径): 3.为视图指定索引: 4.最后指定根索引: 代码如下: #include <QApplic ...
- Qt工作笔记-图形视图框架中的分组,以及添加平行拖动图元
啥意思,感觉本人语文学得菜,不好描述. 直接看程序运行截图: 1.隐藏鼠标: 2.图元分组: 3.视图与场景坐标转换 程序源码如下: mygraphicsitem.h #ifndef MYGRAPHI ...
- Qt工作笔记-ListWidget拖动(拖拽)到QGraphicsScene【补坑】【Qt视图框架补坑】
关于以前的这篇博文,进行补坑 https://blog.csdn.net/qq78442761/article/details/80957186 坑的位置在这,采用上面这篇博文的配法,无法得到图元在场 ...
- Qt工作笔记-右键删除视图中的Item【坐标映射】
程序运行截图如下: 关键: 当处理场景中的图形项时,将坐标或者一个任意的形状从场景映射到图形项.或者从一个图形项映射到另一个图形项.或者从视图映射到场景,这些坐标变换都是很常用的.例如,在QGraph ...
- Qt工作笔记-在QTreeView上实现模型数据的拖拽
运行截图如下: 逻辑是: 1.QTreeView开发拖拽功能. 2.在自定义模型中重写 flags(const QModelIndex &index) const mimeData(const ...
- Qt工作笔记-自定义QSortFilterProxyModel实现多列分别过滤
程序运行截图如下: 原理,重写QSortFilterProxyModel类中的filterAcceptsRow即可: 源码如下: mysortfilterproxymodel.h #ifndef MY ...
- Qt工作笔记-使用setFilterKeyColumn实现model的单行过滤
目录 原理 例子 原理 例子 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_ ...
最新文章
- css3 点击爆炸下落
- .NET 7 预览版 2 已发布,NativeAOT 正式可用
- Windows系统下彻底卸载MySQL数据库
- Cppunit 源码 SynchronizedObject
- 前端学习(1313):get请求参数
- mysql 取交集 php_mysql 查询结果取交集的方法
- “未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案
- 解决wireshark打开错误
- ElasticSearch Client详解
- 小程序webview 页面被放大_Android中WebView加载的网页被放大的解决办法
- 浅析信号与系统2(离散时间复指数序列的周期性质)
- 极米H5多少流明?采用新亮度标准的极米H5怎么样?性价比高吗?
- transforms及Compose
- 数码管段码代码查询工具
- java 泛型中的上界(extend)和下界(super)
- Java集合(超详细-含源码)
- 【mcuclub】矩阵键盘
- Rockchip rv1126平台在gstreamer1中添加OpenCv实现视频流负片的效果
- 知乎圆桌论坛:设计就是生产力
- 职业经理人管理素养提升课程