>[上篇](http://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806449.html)介绍了如何自定义渲染view项,通过这篇,将掌握如何实现view单元项的编辑 可编辑单元项 --- 在[上篇](http://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806449.html)已完成的代码中,为`MyListModel`类加入一下方法: def flags(self, index): """ flag描述了view中数据项的状态信息 """ #首先获取超类的flags返回值 flag=super(MyListModel,self).flags(index) #或运算,将ItemIsEditable(可编辑)标志叠加上去 return flag | Qt.ItemIsEditable 现在运行完整代码,*双击*单元项,就可以编辑它了。 此时我们发现,虽然可以编辑,但是双击后,编辑区域是空,并且编辑完成后,也无任何效果 我们首先解决编辑时数据的显示问题,将以下代码添加到`MyListModel`->`data`方法中,也就是增加一个判断条件: #当前角色为编辑模式,显示原本数据 #这样,当我们双击单元项时,不至于什么都不显示 if role==Qt.EditRole: return self._data[row] 然后,为了保存数据,我们为`MyListModel`类增加如下方法: def setData(self,index,value,role=Qt.EditRole): """ 设置数据 """ #如果当前为编辑角色 if role==Qt.EditRole: #QVariant的这个方法,返回的bool类型表示这个值是否可以被转为int类型 value_int, ok=value.toInt() #如果可以转为int类型 if ok: #保存数据 self._data[index.row()]=value_int #发射数据更改信号,以便让view更新 self.dataChanged.emit(index,index) return True #数据是否成功更新 return False 现在运行代码,可以正常编辑并更新数据了。 进度条根据输入的数值改变 Model处理流程 --- 目前为止,我们可以编写只读、可编辑、自定义单元项的model了,下面是处理流程 Model.flags model item可编辑 | | 创建编辑器 | Model.data 返回编辑状态下的数据 | | 设置编辑器里的数据 | Model.setData 编辑完成,并保存数据 >通过这篇,我们可以编写可编辑的model了,[下篇](http://www.cnblogs.com/hangxin1940/archive/2012/12/07/2806453.html),我们将学会如何用delegate委托渲染model的编辑模式

Pyqt Model/view框架 3.可编辑项相关推荐

  1. 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...

  2. Hello Qt(三十三)——Model/View官方文档

    一.Model/View框架简介 Qt4推出了一组新的项视图类,使用Model/View框架来管理数据与表示层的关系.Model/View框架带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示 ...

  3. Qt Model/View编程介绍

    Qt中包含了一系列的项视图类,它们使用model/view的架构去管理数据之间的关系以及它们被展示给用户的方式.这种由这种架构引进的功能分离特性给了开发者很大的灵活性去自定义自己的展示方式,并且提供了 ...

  4. MVC(Model View Controller)框架

    MVC框架 同义词 MVC一般指MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一 ...

  5. QT Basic 014 Model/View programming (模型、视图编程)

    前言:本文不是纯文本翻译,加入了对概念的理解,纯文本翻译,请看文后的一个链接. Model/View Programming Introduction to Model/View Programmin ...

  6. 第十七章、Model/View开发:QListView的功能及属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView是从QAbstractItemView 派生的类,实现了QAbstrac ...

  7. Qt Model/View 学习笔记 (四)

     创建新的Models 介绍 model/view组件之间功能的分离,允许创建model利用现成的views.这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和Q ...

  8. Qt中model/view设计模式

    Qt Model/View 学习笔记 (一) Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来 ...

  9. Flask-admin Model View字段介绍

    Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = ...

  10. Qt 用 MVD(model view delegate) 模式 把图片变为灰度像素点 [官方Example]

    前言: 今天看到一个好玩的 qt 官方的 demo 可以把图片 变为 一个个灰度的像素点 先来看一下 这个是 qt 的图片 这个是我加载的 我的头像 不过 看 这个 demo 需要了解 Qt 的 MV ...

最新文章

  1. git 不用clone整个远程仓库,只把特定的commit给fetch下来的方案
  2. Xlua文件在热更新中调用方法
  3. lua 字符串分割_Lua函数式编程(中)
  4. 笔记本 cpu 参数
  5. bootstrap学习笔记(5)
  6. MySQL数据常用命令
  7. 1188 最大公约数之和 V2
  8. Biztalk中Host Instance线程控制
  9. 2009年上半年软考所有试题和答案公布 专家解析中
  10. vue学习笔记-10-常用特性之表单操作
  11. PS的30个实用技巧大全
  12. windows恶意软件删除工具 MRT.EXE
  13. TP礼物钻石投票评选男神女神萌娃商家投票系统源码简介下载
  14. react中dispatch_react-redux中连续两次dispatch-actions有顺序吗?
  15. 域名指向主机IP地址,通过域名:8080才能访问网站,去掉后面的8080;或者其他的端口号,直接使用域名访问网站
  16. 蝴蝶效应---。。。
  17. 服务器自定义npc音乐,Custom NPC 自定义NPC模组自定义音乐添加教程
  18. Matlab合并文本或excel文件数据并绘图
  19. web前端svg图标使用(关于阿里iconfont的symbol 引用)
  20. 【Devops实践】Git+Gitlab+Jenkins pipeline(maven+Sonarqube+harbor) +k8s 整合CICD

热门文章

  1. linux hdfs授予文件夹权限,修修改hdfs上的文件所属用户、所属组等读写执行控制权限...
  2. sql server 存储过程_pgRouting教程七:使用SQL存储过程
  3. HTML5 的输入类型(input type)
  4. 菜比如我的漫漫react学习路(二)
  5. 关于Android项目隐藏标题栏的方法总结
  6. highchart 曲线图
  7. 【转】Java集合间的相互转换
  8. Android引领移动互联网革命的七大理由
  9. 微软云计算解决方案与下一代数据中心
  10. java中怎么把系统格式化_如何在java中格式化1200到1.2k