PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled和dragDropMode属性的关系
在《PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑》中,老猿觉得dragEnabled没有什么作用,但原因没有弄明白。
今天无意中跟踪一个测试数据时,将dragEnabled属性的值取出来观察了一下,发现原来不是dragEnabled属性不起作用,而是dragDropMode设置时改变了dragEnabled属性的取值,具体来说:
- 当dragDropMode设置为DragOnly、DragDrop、InternalMove时,会自动将dragEnabled设置为True
- 当dragDropMode设置为DropOnly、NoDragDrop时,会自动将dragEnabled设置为False
- 当修改dragEnabled值时,对dragDropMode属性没有影响
因此只要dragDropMode设置的代码在dragEnabled设置的代码后执行,则dragEnabled的值就会被dragDropMode改写,因此才导致了《PyQt(Python+Qt)学习随笔:QAbstractItemView的dragEnabled属性的困惑》中的困惑。