프로젝트

일반

사용자정보

개정판 360faad5

ID360faad5113a9b78a45ba2003de3317bb29cd675
상위 1db94cb8
하위 3d925fe8

김정우 이(가) 약 7년 전에 추가함

QResultTreeWidget 에서 LineNo 클릭 시 속성이 출력되도록 수정

차이점 보기:

DTI_PID/DTI_PID/MainWindow.py
64 64
        @history    humkyung 2018.04.12 add splitter widget
65 65
                    Jeongwoo 2018.04.27 Add Signal/Slot Connection 'noteNoSingleClicked'
66 66
                    Jeongwoo 2018.05.09 Initialize Action group
67
                    Jeongwoo 2018.05.10 Add Signal/Slot Connection 'lineNoSingleClicked'
67 68
    '''
68 69
    def __init__(self):
69 70
        super(self.__class__, self).__init__()
......
111 112
        self.symbolExplorerVerticalLayout.addWidget(self.resultPropertyTableWidget)
112 113
        self.resultTreeWidget.singleClicked.connect(self.resultPropertyTableWidget.getClickedSymbol)
113 114
        self.resultTreeWidget.noteNoSingleClicked.connect(self.resultPropertyTableWidget.getClickedNote)
115
        self.resultTreeWidget.lineNoSingleClicked.connect(self.resultPropertyTableWidget.getClickedLineNo)
114 116
        # add splitter widget
115 117
        splitter = QSplitter(Qt.Vertical)
116 118
        splitter.addWidget(self.resultTreeWidget)
DTI_PID/DTI_PID/QResultPropertyTableWidget.py
13 13
import sys
14 14
import math
15 15
from SymbolSvgItem import SymbolSvgItem
16
from QEngineeringLineNoTextItem import QEngineeringLineNoTextItem
16 17
from enum import Enum
17 18

  
18 19
'''
19 20
    @brief      ItemType
20 21
    @author     Jeongwoo
21 22
    @date       2018.04.27
23
    @history    2018.05.10  Jeongwoo    Add LINE_NO
22 24
'''
23 25
class ItemType(Enum):
24 26
    SYMBOL = 1
25 27
    NOTE = 2
28
    LINE_NO = 3
26 29

  
27 30
class QResultPropertyTableWidget(QTableWidget):
28 31
    def __init__(self):
......
65 68
    @pyqtSlot(str, list)
66 69
    def getClickedNote(self, noteNoStr, noteContentsList):
67 70
        self.noteChanged(noteNoStr, noteContentsList)
71

  
72
    '''
73
        @brief      Slot to accept Line No Item Click event
74
        @author     Jeongwoo
75
        @date       18.05.10
76
    '''
77
    @pyqtSlot(QEngineeringLineNoTextItem)
78
    def getClickedLineNo(self, lineNoItem):
79
        self.lineNoChanged(lineNoItem)
68 80
        
69 81
    '''
70 82
        @brief      Reset table with new SymbolSvgItem
......
84 96
    def noteChanged(self, noteNoStr, noteContentsList):
85 97
        self.initTitleCell(ItemType.NOTE)
86 98
        self.initNoteCell(noteNoStr, noteContentsList)
99

  
100
    '''
101
        @brief      Reset table with line no item
102
        @author     Jeongwoo
103
        @date       18.05.10
104
    '''
105
    def lineNoChanged(self, lineNoItem):
106
        self.initTitleCell(ItemType.LINE_NO)
107
        self.initLineNoCell(lineNoItem)
87 108
            
88 109
    '''
89 110
        @brief      Initialize Title Cell
90 111
        @author     Jeongwoo
91 112
        @date       18.04.13
92 113
        @history    2018.04.27 Jeongwoo Add if-statement by ItemType
114
                    2018.05.10 Jeongwoo Add if-statement LINE_NO ItemType
93 115
    '''
94 116
    def initTitleCell(self, type):
95 117
        self.clear()
......
101 123
        elif type == ItemType.NOTE:
102 124
            self.setItem(0,     0,      QTableWidgetItem("노트번호"))
103 125
            self.setItem(1,     0,      QTableWidgetItem("노트내용"))
126
        elif type == ItemType.LINE_NO:
127
            '''
128
            DO NOTHING / initLineNoCell
129
            '''
130

  
104 131
        
105 132
        for index in range(self.rowCount()):
106 133
            item = self.item(index, 0)
......
132 159
    def initNoteCell(self, noteNoStr, noteContentsList):
133 160
        self.setItem(0,     1,      QTableWidgetItem(noteNoStr))
134 161
        for index in range(len(noteContentsList)):
135
            self.setItem(1+index,     1,      QTableWidgetItem(noteContentsList[index]))
162
            self.setItem(1+index,     1,      QTableWidgetItem(noteContentsList[index]))
163

  
164
    '''
165
        @brief      Initialize Line No Contents Cell
166
        @author     Jeongwoo
167
        @date       18.05.10
168
    '''
169
    def initLineNoCell(self, lineNoItem):
170
        lineNoTitleItem = QTableWidgetItem("Line No.")
171
        lineNoTitleItem.setBackground(QColor(220, 220, 220))
172
        self.setItem(0, 0, lineNoTitleItem)
173
        self.setItem(0, 1, QTableWidgetItem(lineNoItem.text()))
174
        attrs = lineNoItem.getLineNoAttributes()
175
        if attrs is not None:
176
            attrItems = list(attrs.items())
177
            for index in range(len(attrItems)):
178
                key = attrItems[index][0]
179
                value = attrItems[index][1]
180
                keyItem = QTableWidgetItem(key)
181
                keyItem.setBackground(QColor(220, 220, 220))
182
                self.setItem(1 + index, 0, keyItem)
183
                self.setItem(1 + index, 1, QTableWidgetItem(value))
DTI_PID/DTI_PID/QResultTreeWidget.py
22 22
    #Add Signal
23 23
    singleClicked = pyqtSignal(SymbolSvgItem)
24 24
    noteNoSingleClicked = pyqtSignal(str, list)
25
    lineNoSingleClicked = pyqtSignal(QEngineeringLineNoTextItem)
25 26

  
26 27
    def __init__(self, imageViewer):
27 28
        QTreeWidget.__init__(self)
......
151 152
                    18.04.26    Jeongwoo    QEngineeringTextItem → QEngineeringLineNoTextItem
152 153
                    18.04.27    Jeongwoo    Find NOTE Contents when NOTE No. Clicked
153 154
                                            Move singClicked to if-statement type(itemData) is SymbolSvgItem:
155
                    18.05.10    Jeongwoo    Add lineNoSingleClicked emit
154 156
    '''
155 157
    lastClickedItem = None
156 158
    def itemClickEvent(self, item, columnNo, isSvgClick = False):
......
180 182
                ## Send new event to imageViewer's zoomImage Method
181 183
                self.imageViewer.zoomImage(True, QMouseEvent(QEvent.MouseButtonPress, self.imageViewer.mapFromScene(QPointF(rect.left(), rect.top())), Qt.LeftButton, Qt.LeftButton, Qt.NoModifier), 3)
182 184
                self.lastClickedItem = graphicItem
185

  
186
                self.lineNoSingleClicked.emit(itemData)
183 187
            elif type(itemData) is QEngineeringNoteItem:
184 188
                rect = itemData.sceneBoundingRect()
185 189
                graphicItem = self.scene.addRect(rect.left(), rect.top(), rect.width(), rect.height(), QPen(QColor(255,255,0,100)), QBrush(QColor(255,255,0,100)))

내보내기 Unified diff

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