프로젝트

일반

사용자정보

개정판 f44c85ee

IDf44c85ee350959f7716d29ac69bc18f530c15cff
상위 89b66b97
하위 0a537047

김정우 이(가) 6년 이상 전에 추가함

QEngineeringUnknownItem이 pyqtSignal을 이용하지 못하는 문제로 인해 Transfer 클래스를 생성하여 간접적으로 전달하게끔 수정

차이점 보기:

DTI_PID/DTI_PID/MainWindow.py
662 662
        @date   2018.06.12
663 663
        @history    2018.06.14  Jeongwoo    Change method to add unknown item
664 664
                    2018.06.18  Jeongwoo    Add connect on unknown item
665
                                            Add [transfer] for using pyqtSignal
665 666
    '''
666 667
    def drawUnknownItems(self):
667 668
        from QEngineeringFlowArrowItem import QEngineeringFlowArrowItem 
......
704 705
                if (w < 10 or h < 10): continue
705 706

  
706 707
                item = QEngineeringUnknownItem(x, y, w, h)
707
                item.removed.connect(self.itemRemoved)
708
                item.transfer.removed.connect(self.itemRemoved)
708 709
                self.addUnknownItemToScene(item)
709 710
            # up to here
710 711

  
......
729 730
                    Jeongwoo 2018.06.12 Add LineNoTextItem from LINE_NO
730 731
                    Jeongwoo 2018.06.14 Add UnknownItem from UNKNOWN
731 732
                    Jeongwoo 2018.06.18 Update Scene after all item added
733
                                        Add connect on unknown item
734
                                        Add [transfer] for using pyqtSignal
732 735
    '''
733 736
    def loadRecognitionResultFromXml(self, xmlPath):
734 737
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse
......
837 840
                pt = [float(x) for x in unknown.find('LOCATION').text.split(',')]
838 841
                size = [float(x) for x in unknown.find('SIZE').text.split(',')]
839 842
                item = QEngineeringUnknownItem(pt[0], pt[1], size[0], size[1])
843
                item.transfer.removed.connect(self.itemRemoved)
840 844
                self.addUnknownItemToScene(item)
841 845
            # up to here
842 846

  
DTI_PID/DTI_PID/Shapes/QEngineeringUnknownItem.py
3 3
import copy
4 4
import sys
5 5
try:
6
    from PyQt5.QtCore import Qt, QPointF, QRectF, pyqtSignal, QT_VERSION_STR, QRect
6
    from PyQt5.QtCore import Qt, QPointF, QRectF, pyqtSignal, QT_VERSION_STR, QRect, QObject
7 7
    from PyQt5.QtGui import QImage, QPixmap, QPainterPath, QBrush, QPen, QTransform, QFont, QColor
8 8
    from PyQt5.QtWidgets import QGraphicsView, QGraphicsScene, QFileDialog, QGraphicsItem, QAbstractGraphicsShapeItem, QGraphicsTextItem
9 9
except ImportError:
10 10
    try:
11
        from PyQt4.QtCore import Qt, QRectF, pyqtSignal, QT_VERSION_STR, QRect
11
        from PyQt4.QtCore import Qt, QRectF, pyqtSignal, QT_VERSION_STR, QRect, QObject
12 12
        from PyQt4.QtGui import QGraphicsView, QGraphicsScene, QImage, QPixmap, QPainterPath, QFileDialog, QFont, QColor
13 13
    except ImportError:
14 14
        raise ImportError("ImageViewerQt: Requires PyQt5 or PyQt4.")
......
22 22
    removed = pyqtSignal(QGraphicsItem)
23 23

  
24 24
    '''
25
        @history    2018.06.18  Jeongwoo    Add variable [transfer] for pyqtSignal
25 26
    '''
26 27
    def __init__(self, x, y, width, height, parent=None):
27 28
        import uuid
......
33 34
        self.setFlags(QGraphicsItem.ItemIsSelectable|QGraphicsItem.ItemIsFocusable)
34 35
        self.setAcceptHoverEvents(True)
35 36
        self.setAcceptTouchEvents(True)
37

  
38
        self.transfer = Transfer()
36 39
        
37 40
    def hoverEnterEvent(self, event):
38 41
        pass
......
97 100
        @history    2018.06.18  Jeongwoo    Add calling removed signal
98 101
    '''
99 102
    def deleteUnknownItemFromScene(self):
100
        self.removed.emit(self)
103
        self.transfer.removed.emit(self)
101 104
        self.scene().removeItem(self)
102 105

  
103 106
    def boundingRectOnScene(self):
104 107
        rect = self.sceneBoundingRect()
105 108
        return rect
109

  
110
'''
111
    @brief      The class transfer pyqtSignal Event. Cause Subclass of QGraphicsRectItem can't use pyqtSignal
112
    @author     Jeongwoo
113
    @date       2018.06.18
114
'''
115
class Transfer(QObject):
116
    removed = pyqtSignal(QGraphicsItem)
117

  
118
    def __init__(self, parent = None):
119
        QObject.__init__(self, parent)

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)