PyQt(Python+Qt)学习随笔:Model中项的标记flags取值及枚举类型Qt.ItemFlag
在Model中的项可以通过flags()方法查询对应项是否能被选择、拖拽或其他操作,对应的返回值类型为枚举类型Qt.ItemFlag及该枚举类型通过OR操作组合起来的类型Qt.ItemFlags。Qt.ItemFlag的取值及含义如下:

可以通过setFlags(Qt.ItemFlags flags) 来设置项的flags标记。
注意:
- itemFlag相关的设置是针对项的,与View中的拖放、编辑、选择等属性的设置是独立的,一个项能否进行拖放、编辑、选择等,要Model中的项和View的属性都要能支持拖放、编辑、选择。案例:
def initMultiColumnModel(self):
self.model = QStandardItemModel()
for row in range(6):
for col in range(5):
item = QStandardItem("row: {row},col: {col}".format(row=row + 1, col=col + 1))
item.setFlags(item.flags() | Qt.ItemIsUserCheckable|Qt.ItemIsUserTristate)
if row==1 and col==0:item.setFlags(item.flags() & ( (Qt.ItemIsEditable|Qt.ItemIsDragEnabled)^0xff))
item.setData(True,Qt.CheckStateRole)
self.model.setItem( row, col,item)
self.listView.setModel(self.model)
上述方法代码中将项进行初始化,初始化后如果对应视图支持编辑和拖放,则第2行第1列的项不支持编辑和拖拽。
- 如果想需要能进行复选操作,需要对该项设置适合的ItemFlag并初始化其状态值。上面案例的
item.setData(True,Qt.CheckStateRole)就是完成复选框的初始化 - 如果模型实现了hasChildren()方法并返回True但项设置了 Qt.ItemNeverHasChildren标记,则对项操作的结果是未知的

老猿Python,跟老猿学Python!
PyQt(Python+Qt)学习随笔:Model中项的标记flags取值及枚举类型Qt.ItemFlag的更多相关文章
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项标记flags相关方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidgetItem项可以通过flags()返回项的标记,返回值类型为类型Qt.ItemF ...
- PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性
在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性
老猿Python博文目录 老猿Python博客地址 一.属性的作用 dragDropOverwriteMode属性用于控制视图的拖放行为,如果其值为True,则视图中选定的数据将在拖拽数据放下时被覆盖 ...
- PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...
- PyQt(Python+Qt)学习随笔:视图中的dragDropMode属性对dragEnabled和acceptDrops属性的影响
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系&g ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系
老猿Python博文目录 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑>中,老猿觉得dragE ...
- PyQt(Python+Qt)学习随笔:视图中的拖放操作注意事项
老猿Python博文目录 老猿Python博客地址 在通过PyQt构建的图形界面中进行拖放,要成功进行拖放需要注意: 视图相关属性需要支持拖放,具体相关属性请参考<PyQt(Python+Qt) ...
- PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
autoFillBackground属性可以确认部件背景是否自动填充,如果自动填充,Qt会在调用Paint事件之前填充部件的背景.使用的颜色由部件调色板中的QPalette.window 角色定义(关 ...
随机推荐
- 6、Python语法之垃圾回收机制
一 .引入 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉, ...
- python_socket_tcp_文件传输
server.py import json import struct import socket # 接收 sk = socket.socket() # sk.bind(('127.0.0.1',9 ...
- 解决 Vmware 服务拒绝访问的问题
背景 在服务页面想将 VMware NAT Service 设置为自动开启的,但是保存的时候显示拒绝访问,如下图 解决方案 想到在本机的火绒启动项管理里面将 VMware NAT Service 设置 ...
- 两种图片下拉放大效果实现(自定义CoordinatorLayout以及自定义Recylerview)
一.自定义CoordinatorLayout实现图片放大功能 本文是基于折叠布局实现的图片上拉滑动,下拉图片放大,松手放大的效果,先看下效果图. 实现原理: 1.使用CoordinatorLayout ...
- linux文件描述符、软硬连接、输入输出重定向
引用链接:https://blog.csdn.net/qq769651718/article/details/79459346 文件描述符的作用: 文件描述符是linux操作系统中特有的概念.其相当于 ...
- Jmeter 添加 计数器
第一步: 添加 > 配置元件 > 计数器 如下图所示: 第二步: 设置递增值与引用名称 第三步:使用引用名称 第四步:执行脚本,查看结果
- Nacos一致性算法
1. CAP原则 又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability).分区容错性(Partition tolerance).CAP 原则指的 ...
- DockerInstall
1.安装Tomcat 2.安装mysql [1].pull [root@pluto tomcat7logs]# docker pull mysql:5.6 [root@pluto tomcat7log ...
- 新鲜出炉!2020年最新java面试题大全,面试突击必备!
前言 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了一套Java面试题,希望对大家有帮助哈~ 打算这几天每天更新15~20题.(这样有助于你们阅读和理解!)我们先从简单的开始 1 ...
- Mate 40系列发布 搭载华为运动健康服务带来健康数字生活
10月30日,HUAWEI Mate 40系列国内发布会如期而至.Mate 40系列除了拥有强悍的性能.全能记录影像和突破性的交互之外,还搭载了全新升级的HMS Core,其中,Health Kit( ...