Guest User

Untitled

a guest
Jul 18th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. class ExtendedTreeWidgetItem(QTreeWidgetItem):
  2.  
  3. def __init__(self, *args, **kwargs):
  4. super(ExtendedTreeWidgetItem, self).__init__(*args, **kwargs)
  5. self.rescueFile = None
  6.  
  7. def setRescueFile(self, rFile):
  8. self.rescueFile = rFile
  9.  
  10. def getRescueFile(self):
  11. return self.rescueFile
  12.  
  13.  
  14.  
  15. class RescueFile:
  16.  
  17. def __init__(self, path):
  18. self.path = path
  19. self.ischecked = True
  20.  
  21. def isChecked(self):
  22. return self.ischecked
  23.  
  24. def setChecked(self, checked):
  25. if isinstance(checked, bool):
  26. self.ischecked = checked
  27. elif isinstance(checked, Qt.CheckState):
  28. self.ischecked = True if checked == Qt.Checked else False
  29. print(self.path, self.ischecked)
  30.  
  31. ****
  32. ...
  33. self.treeWidget.itemChanged.connect(self.singleClickTreeWidget)
  34. ...
  35. ****
  36.  
  37.  
  38. def singleClickTreeWidget(self, widgetItem, column):
  39. parent = widgetItem.parent()
  40. if parent and parent.checkState(0) == Qt.Unchecked:
  41. widgetItem.setCheckState(0, Qt.Unchecked)
  42. return
  43.  
  44. checkState = widgetItem.checkState(0)
  45.  
  46. widgetItem.setCheckState(0, checkState)
  47. rescue_file = widgetItem.getRescueFile()
  48. **# I CAN GET THE RESCUE FILE OBJECT HERE FROM**
  49. if rescue_file:
  50. rescue_file.setChecked(checkState)
  51.  
  52. self.iterateThroughChildren(widgetItem, checkState)
  53.  
  54.  
  55.  
  56. def iterateThroughChildren(self, item, checkState):
  57. for i in range(item.childCount()):
  58. child = item.child(i)
  59. child.setCheckState(0, checkState)
  60. **# I CAN'T GET ANY FIND HERE ANYMORE**
  61. rescue_file = item.getRescueFile()
  62. if rescue_file:
  63. rescue_file.setChecked(checkState)
  64. else:
  65. self.iterateThroughChildren(child, checkState)
Add Comment
Please, Sign In to add comment