프로젝트

일반

사용자정보

개정판 a2e73aaf

IDa2e73aaf90ea1387ad1b3cb2f1a1fcb51127de84
상위 d77c1c93
하위 46d5088b

함의성이(가) 약 4년 전에 추가함

issue #000: temp func text rotate added, hmb on going

Change-Id: I16ca07672aaf8a916ac366136a53397e436bf385

차이점 보기:

DTI_PID/DTI_PID/HMBDialog.py
17 17
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Shapes'))
18 18

  
19 19

  
20
class HMBDelegate(QStyledItemDelegate):
21
    def createEditor(self, parent, option, index):
22
        editor = super(HMBDelegate, self).createEditor(parent, option, index)
23
        if index.column() != 0:
24
            return editor
25

  
26

  
27
class HmbModel(QStandardItemModel):
28
    def __init__(self, parent=None, *args):
29
        QStandardItemModel.__init__(self, parent, *args)
30

  
31
    def data(self, index, role):
32
        if not index.isValid():
33
            return None
34
        if role in [Qt.EditRole]:
35
            print('a')
36

  
37
        return super(HmbModel, self).data(index, role)
38

  
20 39
class QHMBDialog(QDialog):
21 40
    def __init__(self, parent):
22 41
        from HMB_UI import Ui_HMBDialog
......
37 56
            self.layouts = [self.ui.gridLayout_3]
38 57
            self.views = [self.ui.tableViewHMB]
39 58

  
59
            self.dataChanged_original = None
60

  
40 61
            if self.fill_hmb_data():
41 62
                self.ui.buttonBox.button(QDialogButtonBox.Ok).setText(self.tr('Save'))
42 63

  
......
49 70
                      f"{sys.exc_info()[-1].tb_lineno}"
50 71
            App.mainWnd().addMessage.emit(MessageType.Error, message)
51 72

  
73
    def dataChanged(self, *args):
74
        tab = self.ui.tabWidget.currentWidget()
75
        index = self.tabs.index(tab)
76
        view = self.views[index]
77

  
78
        self.dataChanged_original(args[0], args[1], args[2])
79

  
52 80
    def fill_hmb_data(self):
53 81
        """load hmb data and fill table view"""
54 82
        import uuid
55 83

  
56 84
        try:
57 85
            hmbs = AppDocData.instance().get_hmb_data(None)
58
            if True:#not hmbs:
86
            if not hmbs:
59 87
                return False
60 88

  
61 89
            for index in range(len(hmbs[0].datas)):
......
73 101
                    self.layouts.append(gridLayout)
74 102
                    self.views.append(tableViewHMB)
75 103

  
76
                model = QStandardItemModel()
104
                model = HmbModel()
77 105
                header = ['UID', 'StreamNumber']
78 106

  
79 107
                for hmb in hmbs:
80 108
                    UID = hmb.uid
81 109
                    STREAM_NO = hmb.stream_no
82
                    items = [QStandardItem(UID), QStandardItem(STREAM_NO)]
110
                    items = [QStandardItem(UID)]
111
                    item =  QStandardItem(STREAM_NO)
112
                    #item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsSelectable)
113
                    items.append(item)
83 114

  
84 115
                    for data in sorted(hmb.datas[index], key=lambda param: param.index):
85 116
                        if hmbs.index(hmb) == 0:
86 117
                            header.append(f"{data.name}\n({data.unit})" if data.unit else f"{data.name}")
87
                        items.append(QStandardItem(data.value))
118
                        item =  QStandardItem(data.value)
119
                        #item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
120
                        items.append(item)
88 121
                    model.appendRow(items)
89 122

  
90 123
                model.setHorizontalHeaderLabels(header)
91 124

  
92 125
                self.views[index].setModel(model)
126
                delegate = HMBDelegate(self.views[index])
127
                self.views[index].setItemDelegate(delegate)
128
                self.dataChanged_original = self.views[index].dataChanged
129
                self.views[index].dataChanged = self.dataChanged
93 130
                self.views[index].resizeColumnsToContents()
94
                self.views[index].setEditTriggers(QAbstractItemView.NoEditTriggers)
131
                #self.views[index].setEditTriggers(QAbstractItemView.NoEditTriggers)
95 132
                self.views[index].setAlternatingRowColors(True)
96 133
                self.ui.tabWidget.setTabText(self.ui.tabWidget.indexOf(self.tabs[index]), hmbs[0].datas[index][0].case)
97 134
            
DTI_PID/DTI_PID/TextItemEditDialog.py
28 28
        self.ui.pushButtonReplaceText.clicked.connect(self.replaceTextClicked)
29 29
        self.ui.checkBoxUID.stateChanged.connect(self.checkBoxUIDChanged)
30 30
        self.ui.checkBoxSymbol.stateChanged.connect(self.checkBoxSymbolChanged)
31
        self.ui.pushButtonSetAngle.clicked.connect(self.set_angle_zero)
31 32

  
32 33
        self.ui.lineEditFindText.setFocus()
33 34

  
35
    def set_angle_zero(self):
36
        text_items = [item for item in self.mainWindow.graphicsView.scene().items()
37
                                if issubclass(type(item), QEngineeringTextItem) and item.owner]
38
        for item in text_items:
39
            if item.angle != 0:
40
                item.angle = 0
41
                width = item.size[0]
42
                height = item.size[1]
43
                item.size = [height, width]
44

  
45
                item.rotate()
46

  
34 47
    def is_valid_uuid(self, text, version=4):
35 48
        """ Check if uuid_to_test is a valid UUID. """
36 49
        import uuid
DTI_PID/DTI_PID/TextItemEdit_UI.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
# Form implementation generated from reading ui file '.\UI\TextItemEdit.ui'
3
# Form implementation generated from reading ui file './UI/TextItemEdit.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.13.0
5
# Created by: PyQt5 UI code generator 5.11.3
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
9

  
10 9
from PyQt5 import QtCore, QtGui, QtWidgets
11 10

  
12

  
13 11
class Ui_TextItemEditDialog(object):
14 12
    def setupUi(self, TextItemEditDialog):
15 13
        TextItemEditDialog.setObjectName("TextItemEditDialog")
......
47 45
        self.gridLayout.addLayout(self.gridLayout_2, 0, 0, 1, 1)
48 46
        self.horizontalLayout = QtWidgets.QHBoxLayout()
49 47
        self.horizontalLayout.setObjectName("horizontalLayout")
48
        self.pushButtonSetAngle = QtWidgets.QPushButton(TextItemEditDialog)
49
        self.pushButtonSetAngle.setObjectName("pushButtonSetAngle")
50
        self.horizontalLayout.addWidget(self.pushButtonSetAngle)
50 51
        self.checkBoxUID = QtWidgets.QCheckBox(TextItemEditDialog)
51 52
        self.checkBoxUID.setFocusPolicy(QtCore.Qt.NoFocus)
52 53
        self.checkBoxUID.setObjectName("checkBoxUID")
......
73 74
        self.pushButtonReplaceText.setText(_translate("TextItemEditDialog", "Replace"))
74 75
        self.label_2.setText(_translate("TextItemEditDialog", "Text : "))
75 76
        self.label.setText(_translate("TextItemEditDialog", "Replace : "))
77
        self.pushButtonSetAngle.setText(_translate("TextItemEditDialog", "Angle 0"))
76 78
        self.checkBoxUID.setText(_translate("TextItemEditDialog", "UID"))
77 79
        self.checkBoxSymbol.setText(_translate("TextItemEditDialog", "Symbol"))
80

  
78 81
import MainWindow_rc
82

  
83
if __name__ == "__main__":
84
    import sys
85
    app = QtWidgets.QApplication(sys.argv)
86
    TextItemEditDialog = QtWidgets.QDialog()
87
    ui = Ui_TextItemEditDialog()
88
    ui.setupUi(TextItemEditDialog)
89
    TextItemEditDialog.show()
90
    sys.exit(app.exec_())
91

  
DTI_PID/DTI_PID/UI/TextItemEdit.ui
74 74
   <item row="2" column="0">
75 75
    <layout class="QHBoxLayout" name="horizontalLayout">
76 76
     <item>
77
      <widget class="QPushButton" name="pushButtonSetAngle">
78
       <property name="text">
79
        <string>Angle 0</string>
80
       </property>
81
      </widget>
82
     </item>
83
     <item>
77 84
      <widget class="QCheckBox" name="checkBoxUID">
78 85
       <property name="focusPolicy">
79 86
        <enum>Qt::NoFocus</enum>
minorTools/xmlTextSearcher.py
3 3
def finder():
4 4
    print("finder start")
5 5
    
6
    targetText = ['>gate cap drain']
6
    targetText = ['>Interlock(1)<']
7 7
    path = 'W:\ID2_Project\Eurochem\Temp'
8 8

  
9 9
    print("target : " + str(len(targetText)))

내보내기 Unified diff

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