프로젝트

일반

사용자정보

개정판 a3aa5583

IDa3aa5583ed729c1e67f5b1628165d8a1c8bb1559
상위 9afb8187
하위 a4bbe0f7, 26a71df4

함의성이(가) 5년 이상 전에 추가함

issue #000: import text from cad

Change-Id: Ibf0d1c3c226aed6bffd96d9785960c2ff0299aa4

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
763 763
        path = os.path.join(tempDir, 'Tile')
764 764
        if not os.path.exists(path):
765 765
            os.makedirs(path)
766
        path = os.path.join(drawingPath, 'Native')
767
        if not os.path.exists(path):
768
            os.makedirs(path)
766 769

  
767 770
    '''
768 771
        @brief  Get current Project
DTI_PID/DTI_PID/ImportTextFromCADDialog.py
1
# coding: utf-8
2
"""
3
    This is text importing module from CAD
4
"""
5
import os
6
import sys
7
from PyQt5.QtCore import *
8
from PyQt5.QtGui import *
9
from PyQt5.QtWidgets import *
10
from AppDocData import AppDocData
11
import XmlGenerator as xg
12
import subprocess
13
from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse
14

  
15
import ImportTextFromCAD_UI
16

  
17
class QImportTextFromCADDialog(QDialog):
18
    def __init__(self, parent):
19
        QDialog.__init__(self, parent)
20

  
21
        self.ui = ImportTextFromCAD_UI.Ui_ImportTextFromCADDialog()
22
        self.ui.setupUi(self)
23

  
24
        self.isAccepted = False
25
 
26
        self.ui.toolButton.clicked.connect(self.addID2Click)
27
        self.ui.toolButton_2.clicked.connect(self.addCADClick)
28
        self.ui.pushButtonImport.clicked.connect(self.importTextFromCAD)
29

  
30
        self.height = None
31

  
32
    def addID2Click(self):
33
        project = AppDocData.instance().getCurrentProject()
34

  
35
        options = QFileDialog.Options()
36
        options |= QFileDialog.DontUseNativeDialog
37
        selectedDir = QFileDialog.getOpenFileName(self, self.tr('Import', "Select ID2 xml File"), project.getTempPath(), "xml files (*.xml)", options=options)
38
        if selectedDir:
39
            self.ui.lineEditID2.setText(selectedDir[0])
40

  
41
    def addCADClick(self):
42
        project = AppDocData.instance().getCurrentProject()
43

  
44
        options = QFileDialog.Options()
45
        options |= QFileDialog.DontUseNativeDialog
46
        selectedDir = QFileDialog.getOpenFileName(self, self.tr('Import', "Select CAD File"), os.path.join(project.getDrawingFilePath(), 'Native'), "dwg files (*.dwg)", options=options)
47
        if selectedDir:
48
            self.ui.lineEditCAD.setText(selectedDir[0])
49
    
50
    def importTextFromCAD(self):
51
        xmlPath = self.ui.lineEditID2.text()
52
        dwgPath = self.ui.lineEditCAD.text()
53
        xOffset = self.ui.doubleSpinBoxX.value()
54
        yOffset = self.ui.doubleSpinBoxY.value()
55
        scale = self.ui.doubleSpinBoxS.value()
56
        if os.path.exists(xmlPath) and os.path.exists(dwgPath) and scale > 0.001:
57
            try:
58
                #filePath = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'bin64', 'OdReadExMgd.exe')
59
                filePath = os.path.join('E:\Projects\OdReadExMgd\\bin\\x86\Debug', 'OdReadExMgd.exe')
60
                command = filePath + ' {} {} {} {}'.format(dwgPath, xOffset, yOffset, scale)
61
                subprocess.call(command, shell = False)
62

  
63
                textXmlPath = os.path.join('E:\Projects\DTIPID_GERRIT', dwgPath.split('/')[-1].split('.')[0] + '.xml')
64
                textXml = parse(textXmlPath)
65
                originXml = parse(xmlPath)
66
                textRoot = textXml.getroot()
67
                originRoot = originXml.getroot()
68
                self.height = int(originRoot.find('SIZE').text.split(',')[1])
69

  
70
                textInfo = originRoot.find(xg.TEXT_INFO_LIST_NODE_NAME)
71
                textInfo.clear()
72
                #for node in textInfo.iter('ATTRIBUTE'):
73
                #    textInfo.remove(node)
74

  
75
                noteInfo = originRoot.find(xg.NOTE_TEXT_INFO_LIST_NOTE_NAME)
76
                noteInfo.clear()
77
                #for node in noteInfo.iter('ATTRIBUTE'):
78
                #    noteInfo.remove(node)
79
                lineNoInfo = originRoot.find(xg.LINE_NOS_NODE_NAME)
80
                lineNoInfo.clear()
81
                #for node in lineNoInfo.iter('LINE_NO'):
82
                #    lineNoInfo.remove(node)
83
                
84
                for textNode in textRoot.iter('Text'):
85
                    node = self.toXml(textNode)
86
                    textInfo.append(node)
87
                
88
                originXml.write(xmlPath, encoding="utf-8", xml_declaration=True)
89

  
90
            except Exception as ex:
91
                from App import App 
92
                from AppDocData import MessageType
93

  
94
                message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
95
                App.mainWnd().addMessage.emit(MessageType.Error, message)
96
    
97
    def toXml(self, textNode):
98
        import uuid
99

  
100
        loc = [float(xy) for xy in textNode.find('Location').text.split(',')]
101
        loc[1] = self.height - loc[1]
102

  
103
        text = textNode.find('Value').text
104
        angle = float(textNode.find('Angle').text)
105

  
106
        height = float(textNode.find('Height').text)
107
        width = float(textNode.find('Width').text)
108

  
109
        node = Element('ATTRIBUTE')
110
        uidNode = Element('UID')
111
        uidNode.text = str(uuid.uuid4())
112
        node.append(uidNode)
113

  
114
        ownerNode = Element('OWNER')
115
        ownerNode.text = 'None'
116
        node.append(ownerNode)
117

  
118
        attributeValueNode = Element('ATTRIBUTEVALUE')
119
        node.append(attributeValueNode)
120

  
121
        nameNode = Element('NAME')
122
        nameNode.text = 'TEXT'
123
        node.append(nameNode)
124
            
125
        locNode = Element('LOCATION')
126
        locNode.text = '{},{}'.format(round(loc[0]), round(loc[1]))
127
        node.append(locNode)
128

  
129
        valueNode = Element('VALUE')
130
        valueNode.text = text
131
        node.append(valueNode)
132

  
133
        angleNode = Element('ANGLE')
134
        angleNode.text = str(round(angle, 2))
135
        node.append(angleNode)
136

  
137
        widthNode = Element('WIDTH')
138
        widthNode.text = str(round(width))
139
        node.append(widthNode)
140

  
141
        heightNode = Element('HEIGHT')
142
        heightNode.text = str(round(height))
143
        node.append(heightNode)
144

  
145
        areaNode = Element('AREA')
146
        areaNode.text = 'None'
147
        node.append(areaNode)
148

  
149
        sceneNode = Element('SCENE')
150
        sceneNode.text = '{},{},{},{}'.format(round(loc[0]), round(loc[1]), round(width), round(height))
151
        node.append(sceneNode)
152

  
153
        return node
DTI_PID/DTI_PID/ImportTextFromCAD_UI.py
1
# -*- coding: utf-8 -*-
2

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

  
9
from PyQt5 import QtCore, QtGui, QtWidgets
10

  
11
class Ui_ImportTextFromCADDialog(object):
12
    def setupUi(self, ImportTextFromCADDialog):
13
        ImportTextFromCADDialog.setObjectName("ImportTextFromCADDialog")
14
        ImportTextFromCADDialog.resize(650, 143)
15
        ImportTextFromCADDialog.setMinimumSize(QtCore.QSize(650, 79))
16
        ImportTextFromCADDialog.setMaximumSize(QtCore.QSize(650, 200))
17
        font = QtGui.QFont()
18
        font.setFamily("맑은 고딕")
19
        font.setBold(True)
20
        font.setWeight(75)
21
        ImportTextFromCADDialog.setFont(font)
22
        self.verticalLayout = QtWidgets.QVBoxLayout(ImportTextFromCADDialog)
23
        self.verticalLayout.setObjectName("verticalLayout")
24
        self.formLayout = QtWidgets.QFormLayout()
25
        self.formLayout.setVerticalSpacing(4)
26
        self.formLayout.setObjectName("formLayout")
27
        self.horizontalLayout = QtWidgets.QHBoxLayout()
28
        self.horizontalLayout.setObjectName("horizontalLayout")
29
        self.label = QtWidgets.QLabel(ImportTextFromCADDialog)
30
        self.label.setMinimumSize(QtCore.QSize(50, 0))
31
        self.label.setObjectName("label")
32
        self.horizontalLayout.addWidget(self.label)
33
        self.lineEditID2 = QtWidgets.QLineEdit(ImportTextFromCADDialog)
34
        self.lineEditID2.setObjectName("lineEditID2")
35
        self.horizontalLayout.addWidget(self.lineEditID2)
36
        self.toolButton = QtWidgets.QToolButton(ImportTextFromCADDialog)
37
        self.toolButton.setObjectName("toolButton")
38
        self.horizontalLayout.addWidget(self.toolButton)
39
        self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
40
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
41
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
42
        self.label_2 = QtWidgets.QLabel(ImportTextFromCADDialog)
43
        self.label_2.setMinimumSize(QtCore.QSize(50, 0))
44
        self.label_2.setObjectName("label_2")
45
        self.horizontalLayout_2.addWidget(self.label_2)
46
        self.lineEditCAD = QtWidgets.QLineEdit(ImportTextFromCADDialog)
47
        self.lineEditCAD.setObjectName("lineEditCAD")
48
        self.horizontalLayout_2.addWidget(self.lineEditCAD)
49
        self.toolButton_2 = QtWidgets.QToolButton(ImportTextFromCADDialog)
50
        self.toolButton_2.setObjectName("toolButton_2")
51
        self.horizontalLayout_2.addWidget(self.toolButton_2)
52
        self.formLayout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
53
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
54
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
55
        self.label_3 = QtWidgets.QLabel(ImportTextFromCADDialog)
56
        self.label_3.setMaximumSize(QtCore.QSize(60, 16777215))
57
        self.label_3.setObjectName("label_3")
58
        self.horizontalLayout_5.addWidget(self.label_3)
59
        self.doubleSpinBoxX = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
60
        self.doubleSpinBoxX.setMaximum(10000.0)
61
        self.doubleSpinBoxX.setObjectName("doubleSpinBoxX")
62
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxX)
63
        self.label_5 = QtWidgets.QLabel(ImportTextFromCADDialog)
64
        self.label_5.setMaximumSize(QtCore.QSize(60, 16777215))
65
        self.label_5.setObjectName("label_5")
66
        self.horizontalLayout_5.addWidget(self.label_5)
67
        self.doubleSpinBoxY = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
68
        self.doubleSpinBoxY.setMaximum(10000.0)
69
        self.doubleSpinBoxY.setObjectName("doubleSpinBoxY")
70
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxY)
71
        self.label_4 = QtWidgets.QLabel(ImportTextFromCADDialog)
72
        self.label_4.setMaximumSize(QtCore.QSize(60, 16777215))
73
        self.label_4.setObjectName("label_4")
74
        self.horizontalLayout_5.addWidget(self.label_4)
75
        self.doubleSpinBoxS = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog)
76
        self.doubleSpinBoxS.setDecimals(5)
77
        self.doubleSpinBoxS.setMaximum(1000.0)
78
        self.doubleSpinBoxS.setObjectName("doubleSpinBoxS")
79
        self.horizontalLayout_5.addWidget(self.doubleSpinBoxS)
80
        self.formLayout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_5)
81
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
82
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
83
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
84
        self.horizontalLayout_3.addItem(spacerItem)
85
        self.pushButtonImport = QtWidgets.QPushButton(ImportTextFromCADDialog)
86
        self.pushButtonImport.setObjectName("pushButtonImport")
87
        self.horizontalLayout_3.addWidget(self.pushButtonImport)
88
        self.pushButtonClose = QtWidgets.QPushButton(ImportTextFromCADDialog)
89
        self.pushButtonClose.setObjectName("pushButtonClose")
90
        self.horizontalLayout_3.addWidget(self.pushButtonClose)
91
        self.formLayout.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_3)
92
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
93
        self.formLayout.setItem(3, QtWidgets.QFormLayout.FieldRole, spacerItem1)
94
        self.verticalLayout.addLayout(self.formLayout)
95
        self.errorLabel = QtWidgets.QLabel(ImportTextFromCADDialog)
96
        self.errorLabel.setMaximumSize(QtCore.QSize(16777215, 0))
97
        self.errorLabel.setStyleSheet("")
98
        self.errorLabel.setText("")
99
        self.errorLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
100
        self.errorLabel.setObjectName("errorLabel")
101
        self.verticalLayout.addWidget(self.errorLabel)
102

  
103
        self.retranslateUi(ImportTextFromCADDialog)
104
        QtCore.QMetaObject.connectSlotsByName(ImportTextFromCADDialog)
105

  
106
    def retranslateUi(self, ImportTextFromCADDialog):
107
        _translate = QtCore.QCoreApplication.translate
108
        ImportTextFromCADDialog.setWindowTitle(_translate("ImportTextFromCADDialog", "Import Text From CAD"))
109
        self.label.setText(_translate("ImportTextFromCADDialog", "ID2  : "))
110
        self.toolButton.setText(_translate("ImportTextFromCADDialog", "..."))
111
        self.label_2.setText(_translate("ImportTextFromCADDialog", "CAD : "))
112
        self.toolButton_2.setText(_translate("ImportTextFromCADDialog", "..."))
113
        self.label_3.setText(_translate("ImportTextFromCADDialog", "X offset : "))
114
        self.label_5.setText(_translate("ImportTextFromCADDialog", " Y offset : "))
115
        self.label_4.setText(_translate("ImportTextFromCADDialog", " Scale : "))
116
        self.pushButtonImport.setText(_translate("ImportTextFromCADDialog", "Import"))
117
        self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close"))
118

  
119

  
120
if __name__ == "__main__":
121
    import sys
122
    app = QtWidgets.QApplication(sys.argv)
123
    ImportTextFromCADDialog = QtWidgets.QDialog()
124
    ui = Ui_ImportTextFromCADDialog()
125
    ui.setupUi(ImportTextFromCADDialog)
126
    ImportTextFromCADDialog.show()
127
    sys.exit(app.exec_())
128

  
DTI_PID/DTI_PID/MainWindow.py
58 58
from TextItemFactory import TextItemFactory
59 59
from TrainingImageListDialog import QTrainingImageListDialog
60 60
from TextDataListDialog import QTextDataListDialog
61
from ImportTextFromCADDialog import QImportTextFromCADDialog
61 62
from DisplayColors import DisplayColors
62 63
from DisplayColors import DisplayOptions
63 64
import uuid
......
218 219
        self.actionVendor.triggered.connect(self.onVendor)
219 220
        self.actionFitWindow.triggered.connect(self.fitWindow)
220 221
        self.actionpdf_to_image.triggered.connect(self.onConvertPDFToImage)
222
        self.actionImport_Text_From_CAD.triggered.connect(self.onImportTextFromCAD)
221 223
        #self.graphicsView.scene.changed.connect(self.onSceneChanged)
222 224
        self.graphicsView.scene.contents_changed.connect(self.onSceneChanged)
223 225
        self.graphicsView.scene.selectionChanged.connect(self.onSelectionChanged)
......
770 772
            filePath = os.path.join(os.path.dirname(os.path.realpath(__file__)) , 'bin64', 'PDF_TO_IMAGE.exe')
771 773
            subprocess.call(filePath, shell = False)
772 774
        except Exception as ex:
773
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
775
            message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
776
            self.addMessage.emit(MessageType.Error, message)
777

  
778
    def onImportTextFromCAD(self):
779
        '''
780
        import text from cad
781
        '''
782
        try:
783
            self.onCommandRejected()
784
            dialog = QImportTextFromCADDialog(self)
785
            dialog.exec_()
786
        except Exception as ex:
787
            message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
788
            self.addMessage.emit(MessageType.Error, message)
789
        
774 790

  
775 791
    '''
776 792
        @brief      selection changed
DTI_PID/DTI_PID/MainWindow_UI.py
2 2

  
3 3
# Form implementation generated from reading ui file './UI/MainWindow.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.12
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 9
from PyQt5 import QtCore, QtGui, QtWidgets
10 10

  
11

  
12 11
class Ui_MainWindow(object):
13 12
    def setupUi(self, MainWindow):
14 13
        MainWindow.setObjectName("MainWindow")
......
441 440
        self.actionViewVendor_Area.setCheckable(True)
442 441
        self.actionViewVendor_Area.setChecked(True)
443 442
        self.actionViewVendor_Area.setObjectName("actionViewVendor_Area")
443
        self.actionImport_Text_From_CAD = QtWidgets.QAction(MainWindow)
444
        self.actionImport_Text_From_CAD.setObjectName("actionImport_Text_From_CAD")
444 445
        self.menu.addAction(self.actionOpen)
445 446
        self.menu.addAction(self.actionArea)
446 447
        self.menu.addAction(self.actionConfiguration)
......
465 466
        self.menu_3.addSeparator()
466 467
        self.menu_3.addAction(self.actionDrawing_Only)
467 468
        self.menu_4.addAction(self.actionpdf_to_image)
469
        self.menu_4.addAction(self.actionImport_Text_From_CAD)
468 470
        self.menu_5.addAction(self.actionFindReplaceText)
469 471
        self.menu_5.addAction(self.actionText_Data_List)
470 472
        self.menubar.addAction(self.menu.menuAction())
......
578 580
        self.actionVendor.setText(_translate("MainWindow", "Vendor"))
579 581
        self.actionVendor.setToolTip(_translate("MainWindow", "Set Vendor Package"))
580 582
        self.actionViewVendor_Area.setText(_translate("MainWindow", "Vendor Area(7)"))
581

  
583
        self.actionImport_Text_From_CAD.setText(_translate("MainWindow", "Import Text From CAD"))
582 584

  
583 585
import MainWindow_rc
586

  
587
if __name__ == "__main__":
588
    import sys
589
    app = QtWidgets.QApplication(sys.argv)
590
    MainWindow = QtWidgets.QMainWindow()
591
    ui = Ui_MainWindow()
592
    ui.setupUi(MainWindow)
593
    MainWindow.show()
594
    sys.exit(app.exec_())
595

  
DTI_PID/DTI_PID/ProjectDialog.py
80 80
        options = QFileDialog.Options()
81 81
        options |= QFileDialog.DontUseNativeDialog
82 82
        options |= QFileDialog.ShowDirsOnly
83
        selectedDir = QFileDialog.getExistingDirectory(None, _translate('Project Dialog', "Select Project Path"), os.getcwd() , options=options)
83
        selectedDir = QFileDialog.getExistingDirectory(None, _translate('Project Dialog', "Select Project Path"), os.getcwd(), options=options)
84 84
        if selectedDir:
85 85
            prj_unit = self.ui.comboBoxProjectUnit.currentText()
86 86
            self.insertProjectInfo(dir=selectedDir, desc=self.ui.lineEditProjectDesc.text(), prj_unit=prj_unit)
DTI_PID/DTI_PID/SpecBreakDialog.py
1 1
# coding: utf-8
2 2
"""
3
    This is area configuration module
3
    This is spec break item seeting module
4 4
"""
5 5
import os
6 6
import sys
7
#sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\Commands')
8 7
from PyQt5.QtCore import *
9 8
from PyQt5.QtGui import *
10 9
from PyQt5.QtWidgets import *
11 10
from AppDocData import AppDocData
12 11

  
13
#sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\Shapes')
14 12
import SpecBreak_UI
15 13

  
16 14
class QSpecBreakDialog(QDialog):
DTI_PID/DTI_PID/UI/ImportTextFromCAD.ui
1
<?xml version="1.0" encoding="UTF-8"?>
2
<ui version="4.0">
3
 <class>ImportTextFromCADDialog</class>
4
 <widget class="QDialog" name="ImportTextFromCADDialog">
5
  <property name="geometry">
6
   <rect>
7
    <x>0</x>
8
    <y>0</y>
9
    <width>650</width>
10
    <height>143</height>
11
   </rect>
12
  </property>
13
  <property name="minimumSize">
14
   <size>
15
    <width>650</width>
16
    <height>79</height>
17
   </size>
18
  </property>
19
  <property name="maximumSize">
20
   <size>
21
    <width>650</width>
22
    <height>200</height>
23
   </size>
24
  </property>
25
  <property name="font">
26
   <font>
27
    <family>맑은 고딕</family>
28
    <weight>75</weight>
29
    <bold>true</bold>
30
   </font>
31
  </property>
32
  <property name="windowTitle">
33
   <string>Import Text From CAD</string>
34
  </property>
35
  <layout class="QVBoxLayout" name="verticalLayout">
36
   <item>
37
    <layout class="QFormLayout" name="formLayout">
38
     <property name="verticalSpacing">
39
      <number>4</number>
40
     </property>
41
     <item row="0" column="1">
42
      <layout class="QHBoxLayout" name="horizontalLayout">
43
       <item>
44
        <widget class="QLabel" name="label">
45
         <property name="minimumSize">
46
          <size>
47
           <width>50</width>
48
           <height>0</height>
49
          </size>
50
         </property>
51
         <property name="text">
52
          <string>ID2  : </string>
53
         </property>
54
        </widget>
55
       </item>
56
       <item>
57
        <widget class="QLineEdit" name="lineEditID2"/>
58
       </item>
59
       <item>
60
        <widget class="QToolButton" name="toolButton">
61
         <property name="text">
62
          <string>...</string>
63
         </property>
64
        </widget>
65
       </item>
66
      </layout>
67
     </item>
68
     <item row="1" column="1">
69
      <layout class="QHBoxLayout" name="horizontalLayout_2">
70
       <item>
71
        <widget class="QLabel" name="label_2">
72
         <property name="minimumSize">
73
          <size>
74
           <width>50</width>
75
           <height>0</height>
76
          </size>
77
         </property>
78
         <property name="text">
79
          <string>CAD : </string>
80
         </property>
81
        </widget>
82
       </item>
83
       <item>
84
        <widget class="QLineEdit" name="lineEditCAD"/>
85
       </item>
86
       <item>
87
        <widget class="QToolButton" name="toolButton_2">
88
         <property name="text">
89
          <string>...</string>
90
         </property>
91
        </widget>
92
       </item>
93
      </layout>
94
     </item>
95
     <item row="2" column="1">
96
      <layout class="QHBoxLayout" name="horizontalLayout_5">
97
       <item>
98
        <widget class="QLabel" name="label_3">
99
         <property name="maximumSize">
100
          <size>
101
           <width>60</width>
102
           <height>16777215</height>
103
          </size>
104
         </property>
105
         <property name="text">
106
          <string>X offset : </string>
107
         </property>
108
        </widget>
109
       </item>
110
       <item>
111
        <widget class="QDoubleSpinBox" name="doubleSpinBoxX">
112
         <property name="maximum">
113
          <double>10000.000000000000000</double>
114
         </property>
115
        </widget>
116
       </item>
117
       <item>
118
        <widget class="QLabel" name="label_5">
119
         <property name="maximumSize">
120
          <size>
121
           <width>60</width>
122
           <height>16777215</height>
123
          </size>
124
         </property>
125
         <property name="text">
126
          <string> Y offset : </string>
127
         </property>
128
        </widget>
129
       </item>
130
       <item>
131
        <widget class="QDoubleSpinBox" name="doubleSpinBoxY">
132
         <property name="maximum">
133
          <double>10000.000000000000000</double>
134
         </property>
135
        </widget>
136
       </item>
137
       <item>
138
        <widget class="QLabel" name="label_4">
139
         <property name="maximumSize">
140
          <size>
141
           <width>60</width>
142
           <height>16777215</height>
143
          </size>
144
         </property>
145
         <property name="text">
146
          <string> Scale : </string>
147
         </property>
148
        </widget>
149
       </item>
150
       <item>
151
        <widget class="QDoubleSpinBox" name="doubleSpinBoxS">
152
         <property name="decimals">
153
          <number>5</number>
154
         </property>
155
         <property name="maximum">
156
          <double>1000.000000000000000</double>
157
         </property>
158
        </widget>
159
       </item>
160
      </layout>
161
     </item>
162
     <item row="4" column="1">
163
      <layout class="QHBoxLayout" name="horizontalLayout_3">
164
       <item>
165
        <spacer name="horizontalSpacer">
166
         <property name="orientation">
167
          <enum>Qt::Horizontal</enum>
168
         </property>
169
         <property name="sizeHint" stdset="0">
170
          <size>
171
           <width>40</width>
172
           <height>20</height>
173
          </size>
174
         </property>
175
        </spacer>
176
       </item>
177
       <item>
178
        <widget class="QPushButton" name="pushButtonImport">
179
         <property name="text">
180
          <string>Import</string>
181
         </property>
182
        </widget>
183
       </item>
184
       <item>
185
        <widget class="QPushButton" name="pushButtonClose">
186
         <property name="text">
187
          <string>Close</string>
188
         </property>
189
        </widget>
190
       </item>
191
      </layout>
192
     </item>
193
     <item row="3" column="1">
194
      <spacer name="verticalSpacer">
195
       <property name="orientation">
196
        <enum>Qt::Vertical</enum>
197
       </property>
198
       <property name="sizeHint" stdset="0">
199
        <size>
200
         <width>20</width>
201
         <height>40</height>
202
        </size>
203
       </property>
204
      </spacer>
205
     </item>
206
    </layout>
207
   </item>
208
   <item>
209
    <widget class="QLabel" name="errorLabel">
210
     <property name="maximumSize">
211
      <size>
212
       <width>16777215</width>
213
       <height>0</height>
214
      </size>
215
     </property>
216
     <property name="styleSheet">
217
      <string notr="true"/>
218
     </property>
219
     <property name="text">
220
      <string/>
221
     </property>
222
     <property name="alignment">
223
      <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
224
     </property>
225
    </widget>
226
   </item>
227
  </layout>
228
 </widget>
229
 <resources/>
230
 <connections/>
231
</ui>
DTI_PID/DTI_PID/UI/MainWindow.ui
103 103
     <string>Tool</string>
104 104
    </property>
105 105
    <addaction name="actionpdf_to_image"/>
106
    <addaction name="actionImport_Text_From_CAD"/>
106 107
   </widget>
107 108
   <widget class="QMenu" name="menu_5">
108 109
    <property name="title">
......
966 967
    <string>Vendor Area(7)</string>
967 968
   </property>
968 969
  </action>
970
  <action name="actionImport_Text_From_CAD">
971
   <property name="text">
972
    <string>Import Text From CAD</string>
973
   </property>
974
  </action>
969 975
 </widget>
970 976
 <resources>
971 977
  <include location="../res/MainWindow.qrc"/>

내보내기 Unified diff

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