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属性的困惑》中的困惑。

老猿Python,跟老猿学Python!

原文地址:https://www.cnblogs.com/LaoYuanPython/p/12235154.html