MCPcopy Create free account
hub / github.com/PyQt5/PyQt / __init__

Method __init__

QListWidget/DragDrop.py:68–94  ·  view source on GitHub ↗
(self, *args, **kwargs)

Source from the content-addressed store, hash-verified

66 # 可以往外拖的QListWidget
67
68 def __init__(self, *args, **kwargs):
69 super(DragListWidget, self).__init__(*args, **kwargs)
70 self.resize(400, 400)
71 # 隐藏横向滚动条
72 self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
73 # 不能编辑
74 self.setEditTriggers(self.NoEditTriggers)
75 # 开启拖功能
76 self.setDragEnabled(True)
77 # 只能往外拖
78 self.setDragDropMode(self.DragOnly)
79 # 忽略放
80 self.setDefaultDropAction(Qt.IgnoreAction)
81 # ****重要的一句(作用是可以单选,多选。Ctrl、Shift多选,可从空白位置框选)****
82 # ****不能用ExtendedSelection,因为它可以在选中item后继续框选会和拖拽冲突****
83 self.setSelectionMode(self.ContiguousSelection)
84 # 设置从左到右、自动换行、依次排列
85 self.setFlow(self.LeftToRight)
86 self.setWrapping(True)
87 self.setResizeMode(self.Adjust)
88 # item的间隔
89 self.setSpacing(5)
90 # 橡皮筋(用于框选效果)
91 self._rubberPos = None
92 self._rubberBand = QRubberBand(QRubberBand.Rectangle, self)
93
94 self.initItems()
95
96 # 实现拖拽的时候预览效果图
97 # 这里演示拼接所有的item截图(也可以自己写算法实现堆叠效果)

Callers

nothing calls this directly

Calls 3

initItemsMethod · 0.95
__init__Method · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected