def addToGroup(self, item, name): ''' Määrittää saman ryhmänimen omaaville yhteisen ryhmän ja palauttaa sen ''' if name.strip() == 'None': return None elif name not in self.groups: group = QGraphicsItemGroup() self.piirtoalusta.scene.addItem(group) group.setFlag(QGraphicsItem.ItemIsSelectable) group.setFlag(QGraphicsItem.ItemIsMovable) group.addToGroup(item) self.groups.update({name: group}) else: group = self.groups[name] group.addToGroup(item)
def on_qAction8_triggered(self): # 组合 items = self.scene.selectedItems() cnt = len(items) if cnt <= 1: return group = QGraphicsItemGroup() self.scene.addItem(group) for i in range(cnt): item = items[i] item.setSelected(False) item.clearFocus() group.addToGroup(item) group.setFlag(QGraphicsItem.ItemIsFocusable) group.setFlag(QGraphicsItem.ItemIsMovable) group.setFlag(QGraphicsItem.ItemIsSelectable) self.__frontZ += 1 group.setZValue(self.__frontZ) self.scene.clearSelection() group.setSelected(True)
def on_actGroup_triggered(self): items=self.scene.selectedItems() # QGraphicsItem的列表 cnt=len(items) #选中的图形项个数 if (cnt<=1): return group =QGraphicsItemGroup() #创建组合 self.scene.addItem(group) #组合添加到场景中 for i in range(cnt): item=items[i] item.setSelected(False) #清除选择虚线框 item.clearFocus() group.addToGroup(item) #添加到组合 group.setFlag(QGraphicsItem.ItemIsFocusable) group.setFlag(QGraphicsItem.ItemIsMovable) group.setFlag(QGraphicsItem.ItemIsSelectable) self.__frontZ=1+self.__frontZ group.setZValue(self.__frontZ) self.scene.clearSelection() group.setSelected(True)