PyQt(Python+Qt)学习随笔:Model中项的标记flags取值及枚举类型Qt.ItemFlag
2023-09-27 14:26:58 时间
在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)学习随笔: QDoubleSpinBox浮点数字设定部件简介
- PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的setTitleBarWidget方法
- PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的allowedAreas属性
- PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件设置tabsClosable后不能关闭选项卡的原因
- PyQt(Python+Qt)学习随笔:QTableWidget的获取指定位置项的item和itemAt方法
- PyQt(Python+Qt)学习随笔:树型部件QTreeWidget的itemAbove、itemBelow方法作用探究
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项下的子项列表中增加子项的方法
- PyQt(Python+Qt)学习随笔:QListWidget的访问当前项的currentItem和setCurrentItem方法
- PyQt(Python+Qt)学习随笔:QTreeView的标题表头header相关属性
- PyQt(Python+Qt)学习随笔:QTableView的gridStyle属性
- PyQt(Python+Qt)学习随笔:QAbstractItemView的SelectionBehavior属性
- PyQt(Python+Qt)学习随笔:QAbstractItemView的selectionMode属性
- PyQt(Python+Qt)学习随笔:QAbstractScrollArea的viewPort(视口)理解
- PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的sizeHint属性
- PyQt(Python+Qt)学习随笔:desktop的宽带、高度widthMM、heightMM
- PyQt(Python+Qt)学习随笔:使用QtWidgets.qApp实现在程序中随时访问应用的方法
- PyQt(Python+Qt)学习随笔:Designer中不能编辑信号和槽的问题
- 使用PyQt(Python+Qt)+动态编译36行代码实现的计算器
- PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象unifiedTitleAndToolBarOnMac属性