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