개정판 03d1b1d2
AutoCAD 파일에서 Text뿐 아니라 Line도 가져오도록 개선
Change-Id: I52c99d732e7008f5f01975d0338f7aee19371b88
DTI_PID/DTI_PID/ConfigurationAreaDialog.py | ||
---|---|---|
48 | 48 |
self.ui.tableWidgetTitleBlockArea.hideColumn(0) |
49 | 49 |
self.isAccepted = False |
50 | 50 |
self._cmd = FenceCommand.FenceCommand(self.parent().graphicsView) |
51 |
self._cmd.onSuccess.connect(self.onAreaCreated)
|
|
51 |
self._cmd.onSuccess.connect(self.on_area_created)
|
|
52 | 52 | |
53 | 53 |
docData = AppDocData.instance() |
54 | 54 |
areas = docData.getAreaList() |
55 | 55 | |
56 | 56 |
# load area of drawing |
57 |
matches = [x for x in areas if x.name == 'Size'] |
|
58 |
self.ui.lineEditSize.tag = QGraphicsBoundingBoxItem(matches[0].x, matches[0].y, matches[0].width, |
|
59 |
matches[0].height) if len(matches) == 1 else None |
|
60 |
if self.ui.lineEditSize.tag is not None: |
|
61 |
self.ui.lineEditSize.tag.transfer.onSizeChanged.connect(self.onBoundingBoxChanged) |
|
62 |
self.ui.lineEditSize.setText( |
|
63 |
f"({round(matches[0].x)},{round(matches[0].y)}),({round(matches[0].width)},{round(matches[0].height)})") |
|
64 |
self.ui.lineEditSize.tag.setPen(QPen(Qt.gray, THICKNESS, Qt.SolidLine)) |
|
65 |
self.parent().graphicsView.scene().addItem(self.ui.lineEditSize.tag) |
|
66 |
self.ui.pushButtonSizeArea.setStyleSheet('background-color: gray') |
|
67 | ||
57 | 68 |
matches = [x for x in areas if x.name == 'Drawing'] |
58 | 69 |
self.ui.lineEditDrawing.tag = QGraphicsBoundingBoxItem(matches[0].x, matches[0].y, matches[0].width, |
59 | 70 |
matches[0].height) if len(matches) == 1 else None |
... | ... | |
214 | 225 |
if self.ui.tableWidgetTypicalArea.rowCount() is not 0: |
215 | 226 |
self.ui.tableWidgetTypicalArea.resizeColumnsToContents() |
216 | 227 | |
228 |
self.ui.pushButtonSizeArea.clicked.connect(self.on_select_size_area) |
|
229 |
self.ui.toolButtonDelSizeArea.clicked.connect(self.on_delete_area) |
|
217 | 230 |
self.ui.pushButtonDrawingArea.clicked.connect(self.selectDrawingArea) |
218 | 231 |
self.ui.pushButtonNoteArea.clicked.connect(self.selectNoteArea) |
219 | 232 |
self.ui.pushButtonHistoryDataArea.clicked.connect(self.selectHistoryDataArea) |
220 | 233 |
self.ui.pushButtonDrawingNoArea.clicked.connect(self.selectDrawingNoArea) |
221 | 234 |
self.ui.pushButtonRevNoArea.clicked.connect(self.selectRevNoArea) |
222 | 235 |
self.ui.pushButtonUnitArea.clicked.connect(self.onSelectUnitArea) |
223 |
self.ui.pushButtonDelDrawingArea.clicked.connect(self.deleteArea)
|
|
224 |
self.ui.pushButtonDelNoteArea.clicked.connect(self.deleteArea)
|
|
225 |
self.ui.pushButtonDelHistoryDataArea.clicked.connect(self.deleteArea)
|
|
226 |
self.ui.pushButtonDelRevNoArea.clicked.connect(self.deleteArea)
|
|
227 |
self.ui.pushButtonDelDrawingNoArea.clicked.connect(self.deleteArea)
|
|
228 |
self.ui.pushButtonDelUnitArea.clicked.connect(self.deleteArea)
|
|
236 |
self.ui.pushButtonDelDrawingArea.clicked.connect(self.on_delete_area)
|
|
237 |
self.ui.pushButtonDelNoteArea.clicked.connect(self.on_delete_area)
|
|
238 |
self.ui.pushButtonDelHistoryDataArea.clicked.connect(self.on_delete_area)
|
|
239 |
self.ui.pushButtonDelRevNoArea.clicked.connect(self.on_delete_area)
|
|
240 |
self.ui.pushButtonDelDrawingNoArea.clicked.connect(self.on_delete_area)
|
|
241 |
self.ui.pushButtonDelUnitArea.clicked.connect(self.on_delete_area)
|
|
229 | 242 | |
230 | 243 |
self.ui.pushButtonAddTitleBlockProp.clicked.connect(self.onSelectTitleBlockArea) |
231 | 244 |
self.ui.pushButtonDelTitleBlockProp.clicked.connect(self.onDeleteTitleBlockArea) |
... | ... | |
234 | 247 |
self.ui.pushButtonAddTypicalArea.clicked.connect(self.onSelectTypicalArea) |
235 | 248 |
self.ui.pushButtonDelTypicalArea.clicked.connect(self.onDeleteTypicalArea) |
236 | 249 | |
237 |
def deleteArea(self, event): |
|
238 |
''' |
|
239 |
@brief delete area by minus button clicked |
|
240 |
@author euisung |
|
241 |
@date 2018.11.20 |
|
242 |
''' |
|
250 |
def on_delete_area(self, event): |
|
251 |
"""delete area by clicking minus button""" |
|
252 | ||
243 | 253 |
sender = self.sender() |
244 | 254 |
# remove text and tag |
245 | 255 |
''' |
... | ... | |
275 | 285 |
self.ui.lineEditUnitArea.tag = None |
276 | 286 |
''' |
277 | 287 |
# set text and tag (0,0),(0,0) |
278 |
if sender is self.ui.pushButtonDelDrawingArea: |
|
288 |
if sender is self.ui.toolButtonDelSizeArea: |
|
289 |
if self.ui.lineEditSize.tag is not None: |
|
290 |
self.ui.lineEditSize.setText('(0,0),(0,0)') |
|
291 |
self.ui.lineEditSize.tag.setRect(0, 0, 0, 0) |
|
292 |
elif sender is self.ui.pushButtonDelDrawingArea: |
|
279 | 293 |
if self.ui.lineEditDrawing.tag is not None: |
280 | 294 |
self.ui.lineEditDrawing.setText('(0,0),(0,0)') |
281 | 295 |
self.ui.lineEditDrawing.tag.setRect(0, 0, 0, 0) |
... | ... | |
300 | 314 |
self.ui.lineEditUnitArea.setText('(0,0),(0,0)') |
301 | 315 |
self.ui.lineEditUnitArea.tag.setRect(0, 0, 0, 0) |
302 | 316 | |
317 |
def on_select_size_area(self): |
|
318 |
self._cmd.tag = self.ui.lineEditSize |
|
319 |
self.parent().graphicsView.command = self._cmd |
|
320 | ||
303 | 321 |
def selectDrawingArea(self): |
304 | 322 |
self._cmd.tag = self.ui.lineEditDrawing |
305 | 323 |
self.parent().graphicsView.command = self._cmd |
... | ... | |
429 | 447 |
sys.exc_info()[-1].tb_lineno) |
430 | 448 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
431 | 449 | |
432 |
''' |
|
433 |
@brief called when area is created |
|
434 |
@history humkyung 2018.06.29 add equipment desc. area |
|
435 |
''' |
|
436 | ||
437 |
def onAreaCreated(self, x, y, width, height): |
|
450 |
def on_area_created(self, x, y, width, height): |
|
451 |
"""called when area is created""" |
|
438 | 452 |
import uuid |
439 | 453 |
THICKNESS = 5 |
440 | 454 | |
441 |
if self._cmd.tag is self.ui.lineEditDrawing: |
|
455 |
if self._cmd.tag is self.ui.lineEditSize: |
|
456 |
if self.ui.lineEditSize.tag is None: |
|
457 |
item = QGraphicsBoundingBoxItem(x, y, width, height) |
|
458 |
item.setPen(QPen(Qt.gray, THICKNESS, Qt.SolidLine)) |
|
459 |
self.parent().graphicsView.scene().addItem(item) |
|
460 | ||
461 |
self.ui.lineEditSize.tag = item |
|
462 |
else: |
|
463 |
self.ui.lineEditSize.tag.setRect(x, y, width, height) |
|
464 | ||
465 |
self.ui.lineEditSize.setText(f"({round(x)},{round(y)}),({round(width)},{round(height)})") |
|
466 |
elif self._cmd.tag is self.ui.lineEditDrawing: |
|
442 | 467 |
if self.ui.lineEditDrawing.tag is None: |
443 | 468 |
item = QGraphicsBoundingBoxItem(x, y, width, height) |
444 | 469 |
item.setPen(QPen(Qt.red, THICKNESS, Qt.SolidLine)) |
... | ... | |
598 | 623 |
y = boundingBox.rect().top() |
599 | 624 |
width = boundingBox.rect().width() |
600 | 625 |
height = boundingBox.rect().height() |
601 |
if boundingBox is self.ui.lineEditDrawing.tag: |
|
626 | ||
627 |
if boundingBox is self.ui.lineEditSize.tag: |
|
628 |
self.ui.lineEditSize.setText('({},{}),({},{})'.format(round(x), round(y), round(width), round(height))) |
|
629 |
elif boundingBox is self.ui.lineEditDrawing.tag: |
|
602 | 630 |
self.ui.lineEditDrawing.setText('({},{}),({},{})'.format(round(x), round(y), round(width), round(height))) |
603 | 631 |
elif boundingBox is self.ui.lineEditNote.tag: |
604 | 632 |
self.ui.lineEditNote.setText('({},{}),({},{})'.format(round(x), round(y), round(width), round(height))) |
... | ... | |
639 | 667 |
try: |
640 | 668 |
areas = [] |
641 | 669 | |
670 |
if self.ui.lineEditSize.tag is not None: |
|
671 |
area = Area('Size') |
|
672 |
rect = self.ui.lineEditSize.tag.rect() |
|
673 |
area.x, area.y = rect.left(), rect.top() |
|
674 |
area.width, area.height = rect.width(), rect.height() |
|
675 |
areas.append(area) |
|
676 |
self.parent().graphicsView.scene().removeItem(self.ui.lineEditSize.tag) |
|
677 | ||
642 | 678 |
if self.ui.lineEditDrawing.tag is not None: |
643 | 679 |
area = Area('Drawing') |
644 | 680 |
area.x = self.ui.lineEditDrawing.tag.rect().left() |
... | ... | |
755 | 791 |
''' |
756 | 792 | |
757 | 793 |
def reject(self): |
794 |
if self.ui.lineEditSize.tag is not None: |
|
795 |
self.parent().graphicsView.scene().removeItem(self.ui.lineEditSize.tag) |
|
796 | ||
758 | 797 |
if self.ui.lineEditDrawing.tag is not None: |
759 | 798 |
self.parent().graphicsView.scene().removeItem(self.ui.lineEditDrawing.tag) |
760 | 799 |
DTI_PID/DTI_PID/Configuration_Area_UI.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 | |
3 |
# Form implementation generated from reading ui file './UI/Configuration_Area.ui'
|
|
3 |
# Form implementation generated from reading ui file '.\UI\Configuration_Area.ui'
|
|
4 | 4 |
# |
5 |
# Created by: PyQt5 UI code generator 5.11.3
|
|
5 |
# Created by: PyQt5 UI code generator 5.13.1
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 | |
9 | ||
9 | 10 |
from PyQt5 import QtCore, QtGui, QtWidgets |
10 | 11 | |
12 | ||
11 | 13 |
class Ui_AreaDialog(object): |
12 | 14 |
def setupUi(self, AreaDialog): |
13 | 15 |
AreaDialog.setObjectName("AreaDialog") |
... | ... | |
24 | 26 |
self.groupBox.setObjectName("groupBox") |
25 | 27 |
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox) |
26 | 28 |
self.gridLayout_2.setObjectName("gridLayout_2") |
27 |
self.label_3 = QtWidgets.QLabel(self.groupBox) |
|
28 |
self.label_3.setObjectName("label_3") |
|
29 |
self.gridLayout_2.addWidget(self.label_3, 3, 0, 1, 1) |
|
30 |
self.pushButtonUnitArea = QtWidgets.QPushButton(self.groupBox) |
|
31 |
self.pushButtonUnitArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
32 |
self.pushButtonUnitArea.setObjectName("pushButtonUnitArea") |
|
33 |
self.gridLayout_2.addWidget(self.pushButtonUnitArea, 5, 4, 1, 1) |
|
34 |
self.lineEditRevNo = QtWidgets.QLineEdit(self.groupBox) |
|
35 |
self.lineEditRevNo.setReadOnly(True) |
|
36 |
self.lineEditRevNo.setObjectName("lineEditRevNo") |
|
37 |
self.gridLayout_2.addWidget(self.lineEditRevNo, 3, 1, 1, 1) |
|
29 |
self.gridLayout_6 = QtWidgets.QGridLayout() |
|
30 |
self.gridLayout_6.setObjectName("gridLayout_6") |
|
31 |
self.pushButtonDelDrawingArea = QtWidgets.QToolButton(self.groupBox) |
|
32 |
self.pushButtonDelDrawingArea.setText("") |
|
33 |
icon1 = QtGui.QIcon() |
|
34 |
icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
35 |
self.pushButtonDelDrawingArea.setIcon(icon1) |
|
36 |
self.pushButtonDelDrawingArea.setObjectName("pushButtonDelDrawingArea") |
|
37 |
self.gridLayout_6.addWidget(self.pushButtonDelDrawingArea, 1, 3, 1, 1) |
|
38 |
self.pushButtonNoteArea = QtWidgets.QPushButton(self.groupBox) |
|
39 |
self.pushButtonNoteArea.setMinimumSize(QtCore.QSize(20, 0)) |
|
40 |
self.pushButtonNoteArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
41 |
self.pushButtonNoteArea.setObjectName("pushButtonNoteArea") |
|
42 |
self.gridLayout_6.addWidget(self.pushButtonNoteArea, 2, 2, 1, 1) |
|
43 |
self.label_4 = QtWidgets.QLabel(self.groupBox) |
|
44 |
self.label_4.setObjectName("label_4") |
|
45 |
self.gridLayout_6.addWidget(self.label_4, 5, 0, 1, 1) |
|
46 |
self.pushButtonRevNoArea = QtWidgets.QPushButton(self.groupBox) |
|
47 |
self.pushButtonRevNoArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
48 |
self.pushButtonRevNoArea.setObjectName("pushButtonRevNoArea") |
|
49 |
self.gridLayout_6.addWidget(self.pushButtonRevNoArea, 4, 2, 1, 1) |
|
50 |
self.lineEditHistoryData = QtWidgets.QLineEdit(self.groupBox) |
|
51 |
self.lineEditHistoryData.setReadOnly(True) |
|
52 |
self.lineEditHistoryData.setObjectName("lineEditHistoryData") |
|
53 |
self.gridLayout_6.addWidget(self.lineEditHistoryData, 3, 1, 1, 1) |
|
38 | 54 |
self.pushButtonHistoryDataArea = QtWidgets.QPushButton(self.groupBox) |
39 | 55 |
self.pushButtonHistoryDataArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
40 | 56 |
self.pushButtonHistoryDataArea.setObjectName("pushButtonHistoryDataArea") |
41 |
self.gridLayout_2.addWidget(self.pushButtonHistoryDataArea, 2, 4, 1, 1) |
|
57 |
self.gridLayout_6.addWidget(self.pushButtonHistoryDataArea, 3, 2, 1, 1) |
|
58 |
self.lineEditRevNo = QtWidgets.QLineEdit(self.groupBox) |
|
59 |
self.lineEditRevNo.setReadOnly(True) |
|
60 |
self.lineEditRevNo.setObjectName("lineEditRevNo") |
|
61 |
self.gridLayout_6.addWidget(self.lineEditRevNo, 4, 1, 1, 1) |
|
62 |
self.label_3 = QtWidgets.QLabel(self.groupBox) |
|
63 |
self.label_3.setObjectName("label_3") |
|
64 |
self.gridLayout_6.addWidget(self.label_3, 4, 0, 1, 1) |
|
65 |
self.lineEditDrawingNo = QtWidgets.QLineEdit(self.groupBox) |
|
66 |
self.lineEditDrawingNo.setReadOnly(True) |
|
67 |
self.lineEditDrawingNo.setObjectName("lineEditDrawingNo") |
|
68 |
self.gridLayout_6.addWidget(self.lineEditDrawingNo, 5, 1, 1, 1) |
|
69 |
self.label_2 = QtWidgets.QLabel(self.groupBox) |
|
70 |
self.label_2.setObjectName("label_2") |
|
71 |
self.gridLayout_6.addWidget(self.label_2, 3, 0, 1, 1) |
|
72 |
self.pushButtonDrawingArea = QtWidgets.QPushButton(self.groupBox) |
|
73 |
self.pushButtonDrawingArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
74 |
self.pushButtonDrawingArea.setObjectName("pushButtonDrawingArea") |
|
75 |
self.gridLayout_6.addWidget(self.pushButtonDrawingArea, 1, 2, 1, 1) |
|
76 |
self.lineEditDrawing = QtWidgets.QLineEdit(self.groupBox) |
|
77 |
self.lineEditDrawing.setReadOnly(True) |
|
78 |
self.lineEditDrawing.setObjectName("lineEditDrawing") |
|
79 |
self.gridLayout_6.addWidget(self.lineEditDrawing, 1, 1, 1, 1) |
|
80 |
self.label = QtWidgets.QLabel(self.groupBox) |
|
81 |
self.label.setObjectName("label") |
|
82 |
self.gridLayout_6.addWidget(self.label, 2, 0, 1, 1) |
|
42 | 83 |
self.lineEditNote = QtWidgets.QLineEdit(self.groupBox) |
43 | 84 |
self.lineEditNote.setReadOnly(True) |
44 | 85 |
self.lineEditNote.setObjectName("lineEditNote") |
45 |
self.gridLayout_2.addWidget(self.lineEditNote, 1, 1, 1, 1) |
|
46 |
self.lineEditHistoryData = QtWidgets.QLineEdit(self.groupBox) |
|
47 |
self.lineEditHistoryData.setReadOnly(True) |
|
48 |
self.lineEditHistoryData.setObjectName("lineEditHistoryData") |
|
49 |
self.gridLayout_2.addWidget(self.lineEditHistoryData, 2, 1, 1, 1) |
|
50 |
self.pushButtonRevNoArea = QtWidgets.QPushButton(self.groupBox) |
|
51 |
self.pushButtonRevNoArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
52 |
self.pushButtonRevNoArea.setObjectName("pushButtonRevNoArea") |
|
53 |
self.gridLayout_2.addWidget(self.pushButtonRevNoArea, 3, 4, 1, 1) |
|
86 |
self.gridLayout_6.addWidget(self.lineEditNote, 2, 1, 1, 1) |
|
54 | 87 |
self.label_6 = QtWidgets.QLabel(self.groupBox) |
55 | 88 |
font = QtGui.QFont() |
56 | 89 |
font.setBold(False) |
57 | 90 |
font.setWeight(50) |
58 | 91 |
self.label_6.setFont(font) |
59 | 92 |
self.label_6.setObjectName("label_6") |
60 |
self.gridLayout_2.addWidget(self.label_6, 0, 0, 1, 1) |
|
61 |
self.lineEditDrawing = QtWidgets.QLineEdit(self.groupBox) |
|
62 |
self.lineEditDrawing.setReadOnly(True) |
|
63 |
self.lineEditDrawing.setObjectName("lineEditDrawing") |
|
64 |
self.gridLayout_2.addWidget(self.lineEditDrawing, 0, 1, 1, 1) |
|
65 |
self.label_7 = QtWidgets.QLabel(self.groupBox) |
|
66 |
self.label_7.setObjectName("label_7") |
|
67 |
self.gridLayout_2.addWidget(self.label_7, 5, 0, 1, 1) |
|
68 |
self.label_4 = QtWidgets.QLabel(self.groupBox) |
|
69 |
self.label_4.setObjectName("label_4") |
|
70 |
self.gridLayout_2.addWidget(self.label_4, 4, 0, 1, 1) |
|
71 |
self.pushButtonNoteArea = QtWidgets.QPushButton(self.groupBox) |
|
72 |
self.pushButtonNoteArea.setMinimumSize(QtCore.QSize(20, 0)) |
|
73 |
self.pushButtonNoteArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
74 |
self.pushButtonNoteArea.setObjectName("pushButtonNoteArea") |
|
75 |
self.gridLayout_2.addWidget(self.pushButtonNoteArea, 1, 4, 1, 1) |
|
76 |
self.label_2 = QtWidgets.QLabel(self.groupBox) |
|
77 |
self.label_2.setObjectName("label_2") |
|
78 |
self.gridLayout_2.addWidget(self.label_2, 2, 0, 1, 1) |
|
93 |
self.gridLayout_6.addWidget(self.label_6, 1, 0, 1, 1) |
|
94 |
self.pushButtonDelDrawingNoArea = QtWidgets.QToolButton(self.groupBox) |
|
95 |
self.pushButtonDelDrawingNoArea.setText("") |
|
96 |
self.pushButtonDelDrawingNoArea.setIcon(icon1) |
|
97 |
self.pushButtonDelDrawingNoArea.setObjectName("pushButtonDelDrawingNoArea") |
|
98 |
self.gridLayout_6.addWidget(self.pushButtonDelDrawingNoArea, 5, 3, 1, 1) |
|
79 | 99 |
self.lineEditUnitArea = QtWidgets.QLineEdit(self.groupBox) |
80 | 100 |
self.lineEditUnitArea.setReadOnly(True) |
81 | 101 |
self.lineEditUnitArea.setObjectName("lineEditUnitArea") |
82 |
self.gridLayout_2.addWidget(self.lineEditUnitArea, 5, 1, 1, 1) |
|
83 |
self.label = QtWidgets.QLabel(self.groupBox) |
|
84 |
self.label.setObjectName("label") |
|
85 |
self.gridLayout_2.addWidget(self.label, 1, 0, 1, 1) |
|
86 |
self.lineEditDrawingNo = QtWidgets.QLineEdit(self.groupBox) |
|
87 |
self.lineEditDrawingNo.setReadOnly(True) |
|
88 |
self.lineEditDrawingNo.setObjectName("lineEditDrawingNo") |
|
89 |
self.gridLayout_2.addWidget(self.lineEditDrawingNo, 4, 1, 1, 1) |
|
102 |
self.gridLayout_6.addWidget(self.lineEditUnitArea, 6, 1, 1, 1) |
|
103 |
self.pushButtonUnitArea = QtWidgets.QPushButton(self.groupBox) |
|
104 |
self.pushButtonUnitArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
105 |
self.pushButtonUnitArea.setObjectName("pushButtonUnitArea") |
|
106 |
self.gridLayout_6.addWidget(self.pushButtonUnitArea, 6, 2, 1, 1) |
|
90 | 107 |
self.pushButtonDrawingNoArea = QtWidgets.QPushButton(self.groupBox) |
91 | 108 |
self.pushButtonDrawingNoArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
92 | 109 |
self.pushButtonDrawingNoArea.setObjectName("pushButtonDrawingNoArea") |
93 |
self.gridLayout_2.addWidget(self.pushButtonDrawingNoArea, 4, 4, 1, 1) |
|
94 |
self.pushButtonDrawingArea = QtWidgets.QPushButton(self.groupBox) |
|
95 |
self.pushButtonDrawingArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
96 |
self.pushButtonDrawingArea.setObjectName("pushButtonDrawingArea") |
|
97 |
self.gridLayout_2.addWidget(self.pushButtonDrawingArea, 0, 4, 1, 1) |
|
98 |
self.pushButtonDelDrawingArea = QtWidgets.QPushButton(self.groupBox) |
|
99 |
self.pushButtonDelDrawingArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
100 |
self.pushButtonDelDrawingArea.setObjectName("pushButtonDelDrawingArea") |
|
101 |
self.gridLayout_2.addWidget(self.pushButtonDelDrawingArea, 0, 5, 1, 1) |
|
102 |
self.pushButtonDelNoteArea = QtWidgets.QPushButton(self.groupBox) |
|
103 |
self.pushButtonDelNoteArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
104 |
self.pushButtonDelNoteArea.setObjectName("pushButtonDelNoteArea") |
|
105 |
self.gridLayout_2.addWidget(self.pushButtonDelNoteArea, 1, 5, 1, 1) |
|
106 |
self.pushButtonDelHistoryDataArea = QtWidgets.QPushButton(self.groupBox) |
|
107 |
self.pushButtonDelHistoryDataArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
108 |
self.pushButtonDelHistoryDataArea.setObjectName("pushButtonDelHistoryDataArea") |
|
109 |
self.gridLayout_2.addWidget(self.pushButtonDelHistoryDataArea, 2, 5, 1, 1) |
|
110 |
self.pushButtonDelRevNoArea = QtWidgets.QPushButton(self.groupBox) |
|
111 |
self.pushButtonDelRevNoArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
112 |
self.pushButtonDelRevNoArea.setObjectName("pushButtonDelRevNoArea") |
|
113 |
self.gridLayout_2.addWidget(self.pushButtonDelRevNoArea, 3, 5, 1, 1) |
|
114 |
self.pushButtonDelDrawingNoArea = QtWidgets.QPushButton(self.groupBox) |
|
115 |
self.pushButtonDelDrawingNoArea.setMaximumSize(QtCore.QSize(25, 16777215)) |
|
116 |
self.pushButtonDelDrawingNoArea.setObjectName("pushButtonDelDrawingNoArea") |
|
117 |
self.gridLayout_2.addWidget(self.pushButtonDelDrawingNoArea, 4, 5, 1, 1) |
|
118 |
self.pushButtonDelUnitArea = QtWidgets.QPushButton(self.groupBox) |
|
119 |
self.pushButtonDelUnitArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
110 |
self.gridLayout_6.addWidget(self.pushButtonDrawingNoArea, 5, 2, 1, 1) |
|
111 |
self.pushButtonDelUnitArea = QtWidgets.QToolButton(self.groupBox) |
|
112 |
self.pushButtonDelUnitArea.setText("") |
|
113 |
self.pushButtonDelUnitArea.setIcon(icon1) |
|
120 | 114 |
self.pushButtonDelUnitArea.setObjectName("pushButtonDelUnitArea") |
121 |
self.gridLayout_2.addWidget(self.pushButtonDelUnitArea, 5, 5, 1, 1) |
|
115 |
self.gridLayout_6.addWidget(self.pushButtonDelUnitArea, 6, 3, 1, 1) |
|
116 |
self.label_7 = QtWidgets.QLabel(self.groupBox) |
|
117 |
self.label_7.setObjectName("label_7") |
|
118 |
self.gridLayout_6.addWidget(self.label_7, 6, 0, 1, 1) |
|
119 |
self.pushButtonDelRevNoArea = QtWidgets.QToolButton(self.groupBox) |
|
120 |
self.pushButtonDelRevNoArea.setText("") |
|
121 |
self.pushButtonDelRevNoArea.setIcon(icon1) |
|
122 |
self.pushButtonDelRevNoArea.setObjectName("pushButtonDelRevNoArea") |
|
123 |
self.gridLayout_6.addWidget(self.pushButtonDelRevNoArea, 4, 3, 1, 1) |
|
124 |
self.pushButtonDelHistoryDataArea = QtWidgets.QToolButton(self.groupBox) |
|
125 |
self.pushButtonDelHistoryDataArea.setText("") |
|
126 |
self.pushButtonDelHistoryDataArea.setIcon(icon1) |
|
127 |
self.pushButtonDelHistoryDataArea.setObjectName("pushButtonDelHistoryDataArea") |
|
128 |
self.gridLayout_6.addWidget(self.pushButtonDelHistoryDataArea, 3, 3, 1, 1) |
|
129 |
self.pushButtonDelNoteArea = QtWidgets.QToolButton(self.groupBox) |
|
130 |
self.pushButtonDelNoteArea.setText("") |
|
131 |
self.pushButtonDelNoteArea.setIcon(icon1) |
|
132 |
self.pushButtonDelNoteArea.setObjectName("pushButtonDelNoteArea") |
|
133 |
self.gridLayout_6.addWidget(self.pushButtonDelNoteArea, 2, 3, 1, 1) |
|
134 |
self.label_5 = QtWidgets.QLabel(self.groupBox) |
|
135 |
self.label_5.setObjectName("label_5") |
|
136 |
self.gridLayout_6.addWidget(self.label_5, 0, 0, 1, 1) |
|
137 |
self.lineEditSize = QtWidgets.QLineEdit(self.groupBox) |
|
138 |
self.lineEditSize.setObjectName("lineEditSize") |
|
139 |
self.gridLayout_6.addWidget(self.lineEditSize, 0, 1, 1, 1) |
|
140 |
self.pushButtonSizeArea = QtWidgets.QPushButton(self.groupBox) |
|
141 |
self.pushButtonSizeArea.setMaximumSize(QtCore.QSize(24, 16777215)) |
|
142 |
self.pushButtonSizeArea.setObjectName("pushButtonSizeArea") |
|
143 |
self.gridLayout_6.addWidget(self.pushButtonSizeArea, 0, 2, 1, 1) |
|
144 |
self.toolButtonDelSizeArea = QtWidgets.QToolButton(self.groupBox) |
|
145 |
self.toolButtonDelSizeArea.setText("") |
|
146 |
self.toolButtonDelSizeArea.setIcon(icon1) |
|
147 |
self.toolButtonDelSizeArea.setObjectName("toolButtonDelSizeArea") |
|
148 |
self.gridLayout_6.addWidget(self.toolButtonDelSizeArea, 0, 3, 1, 1) |
|
149 |
self.gridLayout_2.addLayout(self.gridLayout_6, 0, 0, 1, 1) |
|
122 | 150 |
self.gridLayout.addWidget(self.groupBox, 1, 0, 1, 1) |
123 | 151 |
self.groupBoxEquipmentDesc = QtWidgets.QGroupBox(AreaDialog) |
124 | 152 |
self.groupBoxEquipmentDesc.setObjectName("groupBoxEquipmentDesc") |
... | ... | |
131 | 159 |
self.lineEditEquipmentDescArea = QtWidgets.QLineEdit(self.groupBoxEquipmentDesc) |
132 | 160 |
self.lineEditEquipmentDescArea.setObjectName("lineEditEquipmentDescArea") |
133 | 161 |
self.horizontalLayout.addWidget(self.lineEditEquipmentDescArea) |
134 |
self.pushButtonAdd = QtWidgets.QPushButton(self.groupBoxEquipmentDesc) |
|
135 |
self.pushButtonAdd.setMaximumSize(QtCore.QSize(22, 16777215)) |
|
162 |
self.pushButtonAdd = QtWidgets.QToolButton(self.groupBoxEquipmentDesc) |
|
163 |
self.pushButtonAdd.setText("") |
|
164 |
icon2 = QtGui.QIcon() |
|
165 |
icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Add.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
166 |
self.pushButtonAdd.setIcon(icon2) |
|
136 | 167 |
self.pushButtonAdd.setObjectName("pushButtonAdd") |
137 | 168 |
self.horizontalLayout.addWidget(self.pushButtonAdd) |
138 |
self.pushButtonDel = QtWidgets.QPushButton(self.groupBoxEquipmentDesc) |
|
139 |
self.pushButtonDel.setMaximumSize(QtCore.QSize(22, 16777215)) |
|
169 |
self.pushButtonDel = QtWidgets.QToolButton(self.groupBoxEquipmentDesc) |
|
170 |
self.pushButtonDel.setText("") |
|
171 |
self.pushButtonDel.setIcon(icon1) |
|
140 | 172 |
self.pushButtonDel.setObjectName("pushButtonDel") |
141 | 173 |
self.horizontalLayout.addWidget(self.pushButtonDel) |
142 | 174 |
self.verticalLayout.addLayout(self.horizontalLayout) |
... | ... | |
171 | 203 |
self.horizontalLayout_3.setObjectName("horizontalLayout_3") |
172 | 204 |
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
173 | 205 |
self.horizontalLayout_3.addItem(spacerItem) |
174 |
self.pushButtonAddTitleBlockProp = QtWidgets.QPushButton(self.groupBoxTitleBlock)
|
|
175 |
self.pushButtonAddTitleBlockProp.setMinimumSize(QtCore.QSize(22, 0))
|
|
176 |
self.pushButtonAddTitleBlockProp.setMaximumSize(QtCore.QSize(22, 16777215))
|
|
206 |
self.pushButtonAddTitleBlockProp = QtWidgets.QToolButton(self.groupBoxTitleBlock)
|
|
207 |
self.pushButtonAddTitleBlockProp.setText("")
|
|
208 |
self.pushButtonAddTitleBlockProp.setIcon(icon2)
|
|
177 | 209 |
self.pushButtonAddTitleBlockProp.setObjectName("pushButtonAddTitleBlockProp") |
178 | 210 |
self.horizontalLayout_3.addWidget(self.pushButtonAddTitleBlockProp) |
179 |
self.pushButtonDelTitleBlockProp = QtWidgets.QPushButton(self.groupBoxTitleBlock)
|
|
180 |
self.pushButtonDelTitleBlockProp.setMinimumSize(QtCore.QSize(22, 0))
|
|
181 |
self.pushButtonDelTitleBlockProp.setMaximumSize(QtCore.QSize(22, 16777215))
|
|
211 |
self.pushButtonDelTitleBlockProp = QtWidgets.QToolButton(self.groupBoxTitleBlock)
|
|
212 |
self.pushButtonDelTitleBlockProp.setText("")
|
|
213 |
self.pushButtonDelTitleBlockProp.setIcon(icon1)
|
|
182 | 214 |
self.pushButtonDelTitleBlockProp.setObjectName("pushButtonDelTitleBlockProp") |
183 | 215 |
self.horizontalLayout_3.addWidget(self.pushButtonDelTitleBlockProp) |
184 | 216 |
self.gridLayout_4.addLayout(self.horizontalLayout_3, 0, 0, 1, 1) |
... | ... | |
199 | 231 |
self.lineEditTypicalArea = QtWidgets.QLineEdit(self.groupBoxTypicalArea) |
200 | 232 |
self.lineEditTypicalArea.setObjectName("lineEditTypicalArea") |
201 | 233 |
self.horizontalLayout_5.addWidget(self.lineEditTypicalArea) |
202 |
self.pushButtonAddTypicalArea = QtWidgets.QPushButton(self.groupBoxTypicalArea)
|
|
203 |
self.pushButtonAddTypicalArea.setMinimumSize(QtCore.QSize(22, 0))
|
|
204 |
self.pushButtonAddTypicalArea.setMaximumSize(QtCore.QSize(22, 16777215))
|
|
234 |
self.pushButtonAddTypicalArea = QtWidgets.QToolButton(self.groupBoxTypicalArea)
|
|
235 |
self.pushButtonAddTypicalArea.setText("")
|
|
236 |
self.pushButtonAddTypicalArea.setIcon(icon2)
|
|
205 | 237 |
self.pushButtonAddTypicalArea.setObjectName("pushButtonAddTypicalArea") |
206 | 238 |
self.horizontalLayout_5.addWidget(self.pushButtonAddTypicalArea) |
207 |
self.pushButtonDelTypicalArea = QtWidgets.QPushButton(self.groupBoxTypicalArea)
|
|
208 |
self.pushButtonDelTypicalArea.setMinimumSize(QtCore.QSize(22, 0))
|
|
209 |
self.pushButtonDelTypicalArea.setMaximumSize(QtCore.QSize(22, 16777215))
|
|
239 |
self.pushButtonDelTypicalArea = QtWidgets.QToolButton(self.groupBoxTypicalArea)
|
|
240 |
self.pushButtonDelTypicalArea.setText("")
|
|
241 |
self.pushButtonDelTypicalArea.setIcon(icon1)
|
|
210 | 242 |
self.pushButtonDelTypicalArea.setObjectName("pushButtonDelTypicalArea") |
211 | 243 |
self.horizontalLayout_5.addWidget(self.pushButtonDelTypicalArea) |
212 | 244 |
self.verticalLayout_2.addLayout(self.horizontalLayout_5) |
... | ... | |
230 | 262 |
_translate = QtCore.QCoreApplication.translate |
231 | 263 |
AreaDialog.setWindowTitle(_translate("AreaDialog", "Setup Area")) |
232 | 264 |
self.groupBox.setTitle(_translate("AreaDialog", "Area")) |
233 |
self.label_3.setText(_translate("AreaDialog", "Rev. No : ")) |
|
234 |
self.pushButtonUnitArea.setText(_translate("AreaDialog", "...")) |
|
235 |
self.pushButtonHistoryDataArea.setText(_translate("AreaDialog", "...")) |
|
236 |
self.pushButtonRevNoArea.setText(_translate("AreaDialog", "...")) |
|
237 |
self.label_6.setText(_translate("AreaDialog", "Drawing : ")) |
|
238 |
self.label_7.setText(_translate("AreaDialog", "Unit : ")) |
|
239 |
self.label_4.setText(_translate("AreaDialog", "Drawing No : ")) |
|
240 | 265 |
self.pushButtonNoteArea.setText(_translate("AreaDialog", "...")) |
266 |
self.label_4.setText(_translate("AreaDialog", "Drawing No : ")) |
|
267 |
self.pushButtonRevNoArea.setText(_translate("AreaDialog", "...")) |
|
268 |
self.pushButtonHistoryDataArea.setText(_translate("AreaDialog", "...")) |
|
269 |
self.label_3.setText(_translate("AreaDialog", "Rev. No : ")) |
|
241 | 270 |
self.label_2.setText(_translate("AreaDialog", "History Data : ")) |
271 |
self.pushButtonDrawingArea.setText(_translate("AreaDialog", "...")) |
|
242 | 272 |
self.label.setText(_translate("AreaDialog", "Note : ")) |
273 |
self.label_6.setText(_translate("AreaDialog", "Drawing : ")) |
|
274 |
self.pushButtonUnitArea.setText(_translate("AreaDialog", "...")) |
|
243 | 275 |
self.pushButtonDrawingNoArea.setText(_translate("AreaDialog", "...")) |
244 |
self.pushButtonDrawingArea.setText(_translate("AreaDialog", "...")) |
|
245 |
self.pushButtonDelDrawingArea.setText(_translate("AreaDialog", "-")) |
|
246 |
self.pushButtonDelNoteArea.setText(_translate("AreaDialog", "-")) |
|
247 |
self.pushButtonDelHistoryDataArea.setText(_translate("AreaDialog", "-")) |
|
248 |
self.pushButtonDelRevNoArea.setText(_translate("AreaDialog", "-")) |
|
249 |
self.pushButtonDelDrawingNoArea.setText(_translate("AreaDialog", "-")) |
|
250 |
self.pushButtonDelUnitArea.setText(_translate("AreaDialog", "-")) |
|
276 |
self.label_7.setText(_translate("AreaDialog", "Unit : ")) |
|
277 |
self.label_5.setText(_translate("AreaDialog", "Size : ")) |
|
278 |
self.pushButtonSizeArea.setText(_translate("AreaDialog", "...")) |
|
251 | 279 |
self.groupBoxEquipmentDesc.setTitle(_translate("AreaDialog", "Equipment Desc. Area")) |
252 |
self.pushButtonAdd.setText(_translate("AreaDialog", "+")) |
|
253 |
self.pushButtonDel.setText(_translate("AreaDialog", "-")) |
|
254 | 280 |
self.groupBoxTitleBlock.setTitle(_translate("AreaDialog", "Title Block")) |
255 |
self.pushButtonAddTitleBlockProp.setText(_translate("AreaDialog", "+")) |
|
256 |
self.pushButtonDelTitleBlockProp.setText(_translate("AreaDialog", "-")) |
|
257 | 281 |
self.groupBoxTypicalArea.setTitle(_translate("AreaDialog", "Typical Area")) |
258 |
self.pushButtonAddTypicalArea.setText(_translate("AreaDialog", "+")) |
|
259 |
self.pushButtonDelTypicalArea.setText(_translate("AreaDialog", "-")) |
|
260 | ||
261 | 282 |
import MainWindow_rc |
262 | ||
263 |
if __name__ == "__main__": |
|
264 |
import sys |
|
265 |
app = QtWidgets.QApplication(sys.argv) |
|
266 |
AreaDialog = QtWidgets.QDialog() |
|
267 |
ui = Ui_AreaDialog() |
|
268 |
ui.setupUi(AreaDialog) |
|
269 |
AreaDialog.show() |
|
270 |
sys.exit(app.exec_()) |
|
271 |
DTI_PID/DTI_PID/Configuration_UI.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 | |
3 |
# Form implementation generated from reading ui file './UI/Configuration.ui'
|
|
3 |
# Form implementation generated from reading ui file '.\UI\Configuration.ui'
|
|
4 | 4 |
# |
5 |
# Created by: PyQt5 UI code generator 5.11.3
|
|
5 |
# Created by: PyQt5 UI code generator 5.13.1
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 | |
9 | ||
9 | 10 |
from PyQt5 import QtCore, QtGui, QtWidgets |
10 | 11 | |
12 | ||
11 | 13 |
class Ui_ConfigurationDialog(object): |
12 | 14 |
def setupUi(self, ConfigurationDialog): |
13 | 15 |
ConfigurationDialog.setObjectName("ConfigurationDialog") |
... | ... | |
287 | 289 |
self.gridLayout_3.setObjectName("gridLayout_3") |
288 | 290 |
self.gridLayout_28 = QtWidgets.QGridLayout() |
289 | 291 |
self.gridLayout_28.setObjectName("gridLayout_28") |
292 |
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
293 |
self.gridLayout_28.addItem(spacerItem, 0, 1, 1, 1) |
|
290 | 294 |
self.pushButtonLineNoAttribute = QtWidgets.QPushButton(self.groupBoxLineNo) |
291 | 295 |
self.pushButtonLineNoAttribute.setMinimumSize(QtCore.QSize(50, 24)) |
292 | 296 |
self.pushButtonLineNoAttribute.setMaximumSize(QtCore.QSize(16777215, 24)) |
293 | 297 |
self.pushButtonLineNoAttribute.setObjectName("pushButtonLineNoAttribute") |
294 | 298 |
self.gridLayout_28.addWidget(self.pushButtonLineNoAttribute, 0, 0, 1, 1) |
295 |
self.pushButtonDeleteProperty = QtWidgets.QPushButton(self.groupBoxLineNo) |
|
296 |
self.pushButtonDeleteProperty.setMinimumSize(QtCore.QSize(50, 0)) |
|
297 |
self.pushButtonDeleteProperty.setMaximumSize(QtCore.QSize(50, 16777215)) |
|
298 |
self.pushButtonDeleteProperty.setText("") |
|
299 |
icon1 = QtGui.QIcon() |
|
300 |
icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
301 |
self.pushButtonDeleteProperty.setIcon(icon1) |
|
302 |
self.pushButtonDeleteProperty.setObjectName("pushButtonDeleteProperty") |
|
303 |
self.gridLayout_28.addWidget(self.pushButtonDeleteProperty, 0, 3, 1, 1) |
|
304 |
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
305 |
self.gridLayout_28.addItem(spacerItem, 0, 1, 1, 1) |
|
306 |
self.pushButtonAddProperty = QtWidgets.QPushButton(self.groupBoxLineNo) |
|
307 |
self.pushButtonAddProperty.setMinimumSize(QtCore.QSize(50, 0)) |
|
308 |
self.pushButtonAddProperty.setMaximumSize(QtCore.QSize(50, 16777215)) |
|
309 |
self.pushButtonAddProperty.setText("") |
|
310 |
icon2 = QtGui.QIcon() |
|
311 |
icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Add.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
312 |
self.pushButtonAddProperty.setIcon(icon2) |
|
313 |
self.pushButtonAddProperty.setDefault(False) |
|
314 |
self.pushButtonAddProperty.setObjectName("pushButtonAddProperty") |
|
315 |
self.gridLayout_28.addWidget(self.pushButtonAddProperty, 0, 2, 1, 1) |
|
316 | 299 |
self.tableViewLineNo = QtWidgets.QTableView(self.groupBoxLineNo) |
317 | 300 |
self.tableViewLineNo.setObjectName("tableViewLineNo") |
318 | 301 |
self.gridLayout_28.addWidget(self.tableViewLineNo, 1, 0, 1, 4) |
302 |
self.pushButtonAddProperty = QtWidgets.QToolButton(self.groupBoxLineNo) |
|
303 |
self.pushButtonAddProperty.setText("") |
|
304 |
icon1 = QtGui.QIcon() |
|
305 |
icon1.addPixmap(QtGui.QPixmap(":/newPrefix/Add.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
306 |
self.pushButtonAddProperty.setIcon(icon1) |
|
307 |
self.pushButtonAddProperty.setObjectName("pushButtonAddProperty") |
|
308 |
self.gridLayout_28.addWidget(self.pushButtonAddProperty, 0, 2, 1, 1) |
|
309 |
self.pushButtonDeleteProperty = QtWidgets.QToolButton(self.groupBoxLineNo) |
|
310 |
self.pushButtonDeleteProperty.setText("") |
|
311 |
icon2 = QtGui.QIcon() |
|
312 |
icon2.addPixmap(QtGui.QPixmap(":/newPrefix/Remove.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
313 |
self.pushButtonDeleteProperty.setIcon(icon2) |
|
314 |
self.pushButtonDeleteProperty.setObjectName("pushButtonDeleteProperty") |
|
315 |
self.gridLayout_28.addWidget(self.pushButtonDeleteProperty, 0, 3, 1, 1) |
|
319 | 316 |
self.gridLayout_3.addLayout(self.gridLayout_28, 0, 0, 1, 1) |
320 | 317 |
self.gridLayout_21.addWidget(self.groupBoxLineNo, 2, 1, 1, 1) |
321 | 318 |
self.groupBoxEquipTag = QtWidgets.QGroupBox(self.Recognition2) |
... | ... | |
324 | 321 |
self.gridLayout_34.setObjectName("gridLayout_34") |
325 | 322 |
self.gridLayout_33 = QtWidgets.QGridLayout() |
326 | 323 |
self.gridLayout_33.setObjectName("gridLayout_33") |
327 |
self.pushButtonDeleteTagProperty = QtWidgets.QPushButton(self.groupBoxEquipTag) |
|
328 |
self.pushButtonDeleteTagProperty.setMaximumSize(QtCore.QSize(50, 16777215)) |
|
329 |
self.pushButtonDeleteTagProperty.setText("") |
|
330 |
self.pushButtonDeleteTagProperty.setIcon(icon1) |
|
331 |
self.pushButtonDeleteTagProperty.setObjectName("pushButtonDeleteTagProperty") |
|
332 |
self.gridLayout_33.addWidget(self.pushButtonDeleteTagProperty, 0, 3, 1, 1) |
|
333 |
self.pushButtonAddTagProperty = QtWidgets.QPushButton(self.groupBoxEquipTag) |
|
334 |
self.pushButtonAddTagProperty.setMaximumSize(QtCore.QSize(50, 16777215)) |
|
335 |
self.pushButtonAddTagProperty.setText("") |
|
336 |
self.pushButtonAddTagProperty.setIcon(icon2) |
|
337 |
self.pushButtonAddTagProperty.setObjectName("pushButtonAddTagProperty") |
|
338 |
self.gridLayout_33.addWidget(self.pushButtonAddTagProperty, 0, 2, 1, 1) |
|
339 |
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
340 |
self.gridLayout_33.addItem(spacerItem1, 0, 1, 1, 1) |
|
341 | 324 |
self.pushButtonTagNoAttribute = QtWidgets.QPushButton(self.groupBoxEquipTag) |
342 | 325 |
self.pushButtonTagNoAttribute.setObjectName("pushButtonTagNoAttribute") |
343 | 326 |
self.gridLayout_33.addWidget(self.pushButtonTagNoAttribute, 0, 0, 1, 1) |
327 |
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
328 |
self.gridLayout_33.addItem(spacerItem1, 0, 1, 1, 1) |
|
344 | 329 |
self.tableViewTagNo = QtWidgets.QTableView(self.groupBoxEquipTag) |
345 | 330 |
self.tableViewTagNo.setObjectName("tableViewTagNo") |
346 | 331 |
self.gridLayout_33.addWidget(self.tableViewTagNo, 1, 0, 1, 4) |
332 |
self.pushButtonAddTagProperty = QtWidgets.QToolButton(self.groupBoxEquipTag) |
|
333 |
self.pushButtonAddTagProperty.setText("") |
|
334 |
self.pushButtonAddTagProperty.setIcon(icon1) |
|
335 |
self.pushButtonAddTagProperty.setObjectName("pushButtonAddTagProperty") |
|
336 |
self.gridLayout_33.addWidget(self.pushButtonAddTagProperty, 0, 2, 1, 1, QtCore.Qt.AlignHCenter) |
|
337 |
self.pushButtonDeleteTagProperty = QtWidgets.QToolButton(self.groupBoxEquipTag) |
|
338 |
self.pushButtonDeleteTagProperty.setText("") |
|
339 |
self.pushButtonDeleteTagProperty.setIcon(icon2) |
|
340 |
self.pushButtonDeleteTagProperty.setObjectName("pushButtonDeleteTagProperty") |
|
341 |
self.gridLayout_33.addWidget(self.pushButtonDeleteTagProperty, 0, 3, 1, 1, QtCore.Qt.AlignHCenter) |
|
347 | 342 |
self.gridLayout_34.addLayout(self.gridLayout_33, 0, 0, 1, 1) |
348 | 343 |
self.gridLayout_21.addWidget(self.groupBoxEquipTag, 4, 1, 1, 1) |
349 | 344 |
self.groupBox = QtWidgets.QGroupBox(self.Recognition2) |
... | ... | |
919 | 914 |
ConfigurationDialog.setTabOrder(self.comboBoxLineType, self.radioButtonDiagonalYes) |
920 | 915 |
ConfigurationDialog.setTabOrder(self.radioButtonDiagonalYes, self.radioButtonDiagonalNo) |
921 | 916 |
ConfigurationDialog.setTabOrder(self.radioButtonDiagonalNo, self.pushButtonLineNoAttribute) |
922 |
ConfigurationDialog.setTabOrder(self.pushButtonLineNoAttribute, self.pushButtonAddProperty) |
|
923 |
ConfigurationDialog.setTabOrder(self.pushButtonAddProperty, self.pushButtonDeleteProperty) |
|
924 |
ConfigurationDialog.setTabOrder(self.pushButtonDeleteProperty, self.pushButtonTagNoAttribute) |
|
925 |
ConfigurationDialog.setTabOrder(self.pushButtonTagNoAttribute, self.pushButtonAddTagProperty) |
|
926 |
ConfigurationDialog.setTabOrder(self.pushButtonAddTagProperty, self.pushButtonDeleteTagProperty) |
|
927 |
ConfigurationDialog.setTabOrder(self.pushButtonDeleteTagProperty, self.checkBoxNoteNoSymbolName) |
|
917 |
ConfigurationDialog.setTabOrder(self.pushButtonLineNoAttribute, self.pushButtonTagNoAttribute) |
|
918 |
ConfigurationDialog.setTabOrder(self.pushButtonTagNoAttribute, self.checkBoxNoteNoSymbolName) |
|
928 | 919 |
ConfigurationDialog.setTabOrder(self.checkBoxNoteNoSymbolName, self.lineEditNoteNoSymbolName) |
929 | 920 |
ConfigurationDialog.setTabOrder(self.lineEditNoteNoSymbolName, self.lineEditNoteNoExpression) |
930 | 921 |
ConfigurationDialog.setTabOrder(self.lineEditNoteNoExpression, self.lineEditOPCFromPrefix) |
... | ... | |
1081 | 1072 |
self.radioButtonOpModeGenenal.setText(_translate("ConfigurationDialog", "Genenal")) |
1082 | 1073 |
self.radioButtonOpModeInst.setText(_translate("ConfigurationDialog", "Instrument")) |
1083 | 1074 |
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabETC), _translate("ConfigurationDialog", "ETC")) |
1084 | ||
1085 | 1075 |
import MainWindow_rc |
1086 | ||
1087 |
if __name__ == "__main__": |
|
1088 |
import sys |
|
1089 |
app = QtWidgets.QApplication(sys.argv) |
|
1090 |
ConfigurationDialog = QtWidgets.QDialog() |
|
1091 |
ui = Ui_ConfigurationDialog() |
|
1092 |
ui.setupUi(ConfigurationDialog) |
|
1093 |
ConfigurationDialog.show() |
|
1094 |
sys.exit(app.exec_()) |
|
1095 |
DTI_PID/DTI_PID/ImportTextFromCADDialog.py | ||
---|---|---|
35 | 35 | |
36 | 36 |
options = QFileDialog.Options() |
37 | 37 |
options |= QFileDialog.DontUseNativeDialog |
38 |
files = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select ID2 xml File"), |
|
38 |
files, _ = QFileDialog.getOpenFileNames(self, self.tr('Import', "Select ID2 xml File"),
|
|
39 | 39 |
project.getTempPath(), "xml files (*.xml)", options=options) |
40 | 40 |
if files: |
41 | 41 |
self.ui.lineEditID2.setText(files[0]) if len(files) == 1 else \ |
... | ... | |
69 | 69 |
return |
70 | 70 | |
71 | 71 |
for index in range(len(xmlPaths)): |
72 |
xmlPath = xmlPaths[index]
|
|
72 |
id2_xml_path = xmlPaths[index]
|
|
73 | 73 |
dwgPath = dwgPaths[index] |
74 |
if os.path.exists(xmlPath) and os.path.exists(dwgPath) and scale > 0.001:
|
|
74 |
if os.path.exists(id2_xml_path) and os.path.exists(dwgPath) and scale > 0.001:
|
|
75 | 75 |
try: |
76 |
executable = os.path.join('E:\Projects\OdReadExMgd\\bin\\x86\Debug', 'OdReadExMgd.exe') |
|
77 |
command = f"'{executable}' {dwgPath} {xOffset} {yOffset} {scale}" |
|
76 |
executable = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'OdReadExMgd', |
|
77 |
'OdReadExMgd.exe') |
|
78 |
""" |
|
79 |
command = f"{executable} {dwgPath} {xOffset} {yOffset} {scale}" |
|
78 | 80 |
subprocess.call(command, shell=False) |
79 | ||
80 |
textXmlPath = os.path.join(os.path.join(project.getDrawingFilePath(), 'Native'), |
|
81 |
dwgPath.split('/')[-1].split('.')[0] + '.xml') |
|
82 |
textXml = parse(textXmlPath) |
|
83 |
originXml = parse(xmlPath) |
|
84 |
textRoot = textXml.getroot() |
|
85 |
originRoot = originXml.getroot() |
|
86 |
width = int(originRoot.find('SIZE').text.split(',')[0]) |
|
87 |
height = int(originRoot.find('SIZE').text.split(',')[1]) |
|
81 |
""" |
|
82 |
args = [executable, dwgPath, str(xOffset), str(yOffset), str(scale)] |
|
83 |
CREATE_NO_WINDOW = 0x08000000 |
|
84 |
p = subprocess.Popen( |
|
85 |
args, |
|
86 |
stdin=subprocess.PIPE, |
|
87 |
stdout=subprocess.PIPE, |
|
88 |
stderr=subprocess.PIPE, |
|
89 |
creationflags=CREATE_NO_WINDOW |
|
90 |
) |
|
91 | ||
92 |
stdout, stderr = p.communicate() |
|
93 |
if len(stderr) != 0: |
|
94 |
raise RuntimeError('OdReadExMgd threw error:\n' + stderr.decode('utf-8')) |
|
95 | ||
96 |
autocad_xml_path = os.path.join(os.path.join(project.getDrawingFilePath(), 'Native'), |
|
97 |
os.path.splitext(os.path.basename(dwgPath))[0] + '.xml') |
|
98 |
autocad_xml = parse(autocad_xml_path) |
|
99 |
id2_xml = parse(id2_xml_path) |
|
100 |
autocad_xml_root = autocad_xml.getroot() |
|
101 |
id2_xml_root = id2_xml.getroot() |
|
102 |
if 'BoundingBox' in id2_xml_root.attrib: |
|
103 |
id2_bbox = [int(attr) for attr in id2_xml_root.attrib['BoundingBox'].split(',')] |
|
104 |
else: |
|
105 |
id2_bbox = [0, 0, |
|
106 |
int(id2_xml_root.find('SIZE').text.split(',')[0]), |
|
107 |
int(id2_xml_root.find('SIZE').text.split(',')[1])] |
|
88 | 108 | |
89 | 109 |
"""remove texts from id2 xml file""" |
90 |
textInfo = originRoot.find(xg.TEXT_INFO_LIST_NODE_NAME)
|
|
110 |
textInfo = id2_xml_root.find(xg.TEXT_INFO_LIST_NODE_NAME)
|
|
91 | 111 |
textInfo.clear() |
92 | 112 | |
93 |
noteInfo = originRoot.find(xg.NOTE_TEXT_INFO_LIST_NOTE_NAME)
|
|
113 |
noteInfo = id2_xml_root.find(xg.NOTE_TEXT_INFO_LIST_NOTE_NAME)
|
|
94 | 114 |
noteInfo.clear() |
95 | 115 | |
96 |
lineNoInfo = originRoot.find(xg.LINE_NOS_NODE_NAME)
|
|
116 |
lineNoInfo = id2_xml_root.find(xg.LINE_NOS_NODE_NAME)
|
|
97 | 117 |
lineNoInfo.clear() |
98 | 118 |
"""up to here""" |
99 | 119 | |
100 |
"""add text from cad file to id xml file""" |
|
101 |
for textNode in textRoot.iter('Text'): |
|
102 |
node = self.toXml(textNode, width, height) |
|
103 |
if node: |
|
104 |
textInfo.append(node) |
|
120 |
"""remove lines from id2 xml file""" |
|
121 |
line_infos = id2_xml_root.find(xg.LINE_INFOS_NODE_NAME) |
|
122 |
line_infos.clear() |
|
123 |
"""up to here""" |
|
124 | ||
125 |
"""remove unknowns from id2 xml file""" |
|
126 |
unknowns = id2_xml_root.find(xg.UNKNOWNS_NODE_NAME) |
|
127 |
unknowns.clear() |
|
128 |
"""up to here""" |
|
105 | 129 | |
106 |
originXml.write(xmlPath, encoding="utf-8", xml_declaration=True) |
|
130 |
"""add text from autocad file to id xml file""" |
|
131 |
for blk_tbl_record in autocad_xml_root.iter('AcDbBlockTableRecord'): |
|
132 |
if blk_tbl_record.attrib['Name'] != '*Model_Space': |
|
133 |
continue |
|
134 | ||
135 |
min_values = [float(token) for token in |
|
136 |
blk_tbl_record.attrib['MinExtents'].strip('(').strip(')').split(',')] |
|
137 |
max_values = [float(token) for token in |
|
138 |
blk_tbl_record.attrib['MaxExtents'].strip('(').strip(')').split(',')] |
|
139 |
autocad_bbox = [min_values[0], min_values[1], |
|
140 |
max_values[0] - min_values[0], max_values[1] - min_values[1]] |
|
141 |
for record in blk_tbl_record.iter('AcDbText'): |
|
142 |
node = self.text_to_xml(record, id2_bbox, autocad_bbox) |
|
143 |
if node: |
|
144 |
textInfo.append(node) |
|
145 | ||
146 |
for blk_ref in blk_tbl_record.iter('AcDbBlockReference'): |
|
147 |
for record in blk_ref.iter('AcDbAttribute'): |
|
148 |
node = self.text_to_xml(record, id2_bbox, autocad_bbox) |
|
149 |
if node: |
|
150 |
textInfo.append(node) |
|
151 | ||
152 |
for record in blk_tbl_record.iter('AcDbLine'): |
|
153 |
node = self.lines_to_xml(record, id2_bbox, autocad_bbox) |
|
154 |
if node: |
|
155 |
line_infos.append(node) |
|
156 | ||
157 |
for record in blk_tbl_record.iter('AcDbPolyline'): |
|
158 |
node = self.lines_to_xml(record, id2_bbox, autocad_bbox) |
|
159 |
if node: |
|
160 |
line_infos.append(node) |
|
161 | ||
162 |
id2_xml.write(id2_xml_path, encoding="utf-8", xml_declaration=True) |
|
107 | 163 |
"""up to here""" |
164 | ||
165 |
QMessageBox.information(self, self.tr('Information'), self.tr('Importing Success!'), |
|
166 |
QMessageBox.Close) |
|
108 | 167 |
except Exception as ex: |
109 | 168 |
from App import App |
110 | 169 |
from AppDocData import MessageType |
... | ... | |
113 | 172 |
f"{sys.exc_info()[-1].tb_lineno}" |
114 | 173 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
115 | 174 | |
116 |
QMessageBox.information(self, self.tr('Information'), self.tr('Importing Success!'), QMessageBox.Close) |
|
117 |
|
|
118 |
def toXml(self, textNode, width: int, height: int): |
|
175 |
def text_to_xml(self, text_node, id2_bbox, autocad_bbox): |
|
176 |
"""try to convert text element to id2 xml""" |
|
119 | 177 |
import uuid |
120 | 178 | |
121 |
loc = [float(xy) for xy in textNode.find('Location').text.split(',')] |
|
122 |
loc[1] = self.height - loc[1] |
|
123 | ||
124 |
text = textNode.find('Value').text |
|
125 |
angle = round(float(textNode.find('Angle').text), 2) |
|
126 | ||
127 |
_height = round(float(textNode.find('Height').text)) |
|
128 |
_width = _height * len(text) * 2 / 3#round( float(textNode.find('Width').text)) |
|
129 | ||
130 |
allowed_error = 0.01 |
|
131 |
if abs(angle - 1.57) < allowed_error: |
|
132 |
_height, _width = _width, _height |
|
133 |
loc[0], loc[1] = loc[0] - _width, loc[1] - _height + _width |
|
134 |
elif abs(angle - 4.71) < allowed_error: |
|
135 |
_height, _width = _width, _height |
|
136 |
loc[0], loc[1] = loc[0] - _width, loc[1] + _height - _width |
|
137 | ||
138 |
if loc[0] <= 0 or loc[1] <= 0 or _width <= 0 or _height <= 0: |
|
139 |
return None |
|
140 |
if loc[0] >= width or loc[1] >= height or loc[0] + width >= width or loc[1] + height >= height: |
|
141 |
return None |
|
142 | ||
143 |
node = Element('ATTRIBUTE') |
|
144 |
uidNode = Element('UID') |
|
145 |
uidNode.text = str(uuid.uuid4()) |
|
146 |
node.append(uidNode) |
|
147 | ||
148 |
ownerNode = Element('OWNER') |
|
149 |
ownerNode.text = 'None' |
|
150 |
node.append(ownerNode) |
|
151 | ||
152 |
attributeValueNode = Element('ATTRIBUTEVALUE') |
|
153 |
node.append(attributeValueNode) |
|
154 | ||
155 |
nameNode = Element('NAME') |
|
156 |
nameNode.text = 'TEXT' |
|
157 |
node.append(nameNode) |
|
158 |
|
|
159 |
locNode = Element('LOCATION') |
|
160 |
locNode.text = '{},{}'.format(round(loc[0]), round(loc[1])) |
|
161 |
node.append(locNode) |
|
162 | ||
163 |
valueNode = Element('VALUE') |
|
164 |
valueNode.text = text |
|
165 |
node.append(valueNode) |
|
166 | ||
167 |
angleNode = Element('ANGLE') |
|
168 |
angleNode.text = str(round(angle, 2)) |
|
169 |
node.append(angleNode) |
|
170 | ||
171 |
widthNode = Element('WIDTH') |
|
172 |
widthNode.text = str(round(_width)) |
|
173 |
node.append(widthNode) |
|
174 | ||
175 |
heightNode = Element('HEIGHT') |
|
176 |
heightNode.text = str(round(_height)) |
|
177 |
node.append(heightNode) |
|
178 | ||
179 |
areaNode = Element('AREA') |
|
180 |
areaNode.text = 'None' |
|
181 |
node.append(areaNode) |
|
179 |
try: |
|
180 |
scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) |
|
181 |
offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale] |
|
182 | ||
183 |
loc = [float(text_node.attrib['X']) * scale + offsets[0], -float(text_node.attrib['Y']) * scale + offsets[1]] |
|
184 | ||
185 |
text = text_node.text |
|
186 |
angle = round(float(text_node.attrib['Angle']), 2) |
|
187 | ||
188 |
_height = round(float(text_node.attrib['Height'])) * scale |
|
189 |
loc[1] -= _height |
|
190 |
_width = _height * len(text) * 2 / 3 # round( float(textNode.find('Width').text)) |
|
191 | ||
192 |
allowed_error = 0.01 |
|
193 |
if abs(angle - 1.57) < allowed_error: |
|
194 |
_height, _width = _width, _height |
|
195 |
loc[0], loc[1] = loc[0] - _width, loc[1] - _height + _width |
|
196 |
elif abs(angle - 4.71) < allowed_error: |
|
197 |
_height, _width = _width, _height |
|
198 |
loc[0], loc[1] = loc[0] - _width, loc[1] + _height - _width |
|
199 | ||
200 |
""" |
|
201 |
if loc[0] <= 0 or loc[1] <= 0 or _width <= 0 or _height <= 0: |
|
202 |
return None |
|
203 |
if loc[0] >= id2_bbox[2] or loc[1] >= id2_bbox[3] or \ |
|
204 |
loc[0] + _width >= id2_bbox[2] or loc[1] + _height >= id2_bbox[3]: |
|
205 |
return None |
|
206 |
""" |
|
207 | ||
208 |
"""create a element for id2""" |
|
209 |
node = Element('ATTRIBUTE') |
|
210 |
uidNode = Element('UID') |
|
211 |
uidNode.text = str(uuid.uuid4()) |
|
212 |
node.append(uidNode) |
|
213 | ||
214 |
ownerNode = Element('OWNER') |
|
215 |
ownerNode.text = 'None' |
|
216 |
node.append(ownerNode) |
|
217 | ||
218 |
attributeValueNode = Element('ATTRIBUTEVALUE') |
|
219 |
node.append(attributeValueNode) |
|
220 | ||
221 |
nameNode = Element('NAME') |
|
222 |
nameNode.text = 'TEXT' |
|
223 |
node.append(nameNode) |
|
224 | ||
225 |
locNode = Element('LOCATION') |
|
226 |
locNode.text = f"{round(loc[0])},{round(loc[1])}" |
|
227 |
node.append(locNode) |
|
228 | ||
229 |
valueNode = Element('VALUE') |
|
230 |
valueNode.text = text |
|
231 |
node.append(valueNode) |
|
232 | ||
233 |
angleNode = Element('ANGLE') |
|
234 |
angleNode.text = str(round(angle, 2)) |
|
235 |
node.append(angleNode) |
|
236 | ||
237 |
widthNode = Element('WIDTH') |
|
238 |
widthNode.text = str(round(_width)) |
|
239 |
node.append(widthNode) |
|
240 | ||
241 |
heightNode = Element('HEIGHT') |
|
242 |
heightNode.text = str(round(_height)) |
|
243 |
node.append(heightNode) |
|
244 | ||
245 |
areaNode = Element('AREA') |
|
246 |
areaNode.text = 'None' |
|
247 |
node.append(areaNode) |
|
248 | ||
249 |
sceneNode = Element('SCENE') |
|
250 |
sceneNode.text = f"{round(loc[0])},{round(loc[1])},{round(_width)},{round(_height)}" |
|
251 |
node.append(sceneNode) |
|
252 |
"""up to here""" |
|
253 | ||
254 |
return node |
|
255 |
except Exception as ex: |
|
256 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
|
257 |
f"{sys.exc_info()[-1].tb_lineno}" |
|
258 | ||
259 |
print(message) |
|
260 | ||
261 |
def lines_to_xml(self, line_node, id2_bbox, autocad_bbox): |
|
262 |
"""try to convert line element to id2 xml""" |
|
263 |
import uuid |
|
182 | 264 | |
183 |
sceneNode = Element('SCENE') |
|
184 |
sceneNode.text = f"{round(loc[0])},{round(loc[1])},{round(_width)},{round(_height)}" |
|
185 |
node.append(sceneNode) |
|
265 |
scale = max([id2_bbox[2] / autocad_bbox[2], id2_bbox[3] / autocad_bbox[3]]) |
|
266 |
offsets = [id2_bbox[0] - autocad_bbox[0] * scale, (id2_bbox[1] + id2_bbox[3]) - autocad_bbox[1] * scale] |
|
267 | ||
268 |
pts = [] |
|
269 |
for vertex in line_node.iter('Vertex'): |
|
270 |
pts.append((float(vertex.attrib['X']) * scale + offsets[0], |
|
271 |
-float(vertex.attrib['Y']) * scale + offsets[1])) |
|
272 | ||
273 |
for idx in range(len(pts) - 1): |
|
274 |
start, end = pts[idx], pts[idx + 1] |
|
275 |
"""create a element for id2""" |
|
276 |
node = Element('LINE') |
|
277 |
node.attrib['OWNER'] = 'None' |
|
278 |
_node = SubElement(node, 'UID') |
|
279 |
_node.text = str(uuid.uuid4()) |
|
280 | ||
281 |
_node = SubElement(node, 'STARTPOINT') |
|
282 |
_node.text = f"{start[0]},{start[1]}" |
|
283 | ||
284 |
_node = SubElement(node, 'ENDPOINT') |
|
285 |
_node.text = f"{end[0]},{end[1]}" |
|
286 | ||
287 |
_node = SubElement(node, 'AREA') |
|
288 |
_node.text = 'Drawing' |
|
289 | ||
290 |
_node = SubElement(node, 'THICKNESS') |
|
291 |
_node.text = '1' |
|
292 | ||
293 |
_node = SubElement(node, 'FLOWMARK') |
|
294 |
_node.text = 'None' |
|
295 | ||
296 |
_node = SubElement(node, 'CONNECTORS') |
|
297 |
for conn in range(2): |
|
298 |
__node = SubElement(_node, 'CONNECTOR') |
|
299 |
__node.attrib['CONNECTED_AT'] = '0' |
|
300 |
__node.attrib['UID'] = str(uuid.uuid4()) |
|
301 |
___node = SubElement(__node, 'CONNECTEDITEM') |
|
302 |
___node.text = 'None' |
|
303 |
___node = SubElement(__node, 'CONNECTPOINT') |
|
304 |
___node.text = f"{start[0]},{start[1]}" if conn == 0 else f"{end[0]},{end[1]}" |
|
305 |
___node = SubElement(__node, 'SCENECONNECTPOINT') |
|
306 |
___node.text = f"{start[0]},{start[1]}" if conn == 0 else f"{end[0]},{end[1]}" |
|
307 |
"""up to here""" |
|
186 | 308 | |
187 | 309 |
return node |
188 | 310 | |
311 | ||
189 | 312 |
def close(self): |
190 | 313 |
QDialog.reject(self) |
DTI_PID/DTI_PID/ImportTextFromCAD_UI.py | ||
---|---|---|
2 | 2 | |
3 | 3 |
# Form implementation generated from reading ui file '.\UI\ImportTextFromCAD.ui' |
4 | 4 |
# |
5 |
# Created by: PyQt5 UI code generator 5.13.0
|
|
5 |
# Created by: PyQt5 UI code generator 5.13.1
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 | |
... | ... | |
70 | 70 |
self.label_3.setObjectName("label_3") |
71 | 71 |
self.horizontalLayout.addWidget(self.label_3) |
72 | 72 |
self.doubleSpinBoxX = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
73 |
self.doubleSpinBoxX.setEnabled(False) |
|
73 | 74 |
self.doubleSpinBoxX.setMinimum(-100000.0) |
74 | 75 |
self.doubleSpinBoxX.setMaximum(100000.0) |
75 | 76 |
self.doubleSpinBoxX.setObjectName("doubleSpinBoxX") |
... | ... | |
79 | 80 |
self.label_5.setObjectName("label_5") |
80 | 81 |
self.horizontalLayout.addWidget(self.label_5) |
81 | 82 |
self.doubleSpinBoxY = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
83 |
self.doubleSpinBoxY.setEnabled(False) |
|
82 | 84 |
self.doubleSpinBoxY.setMinimum(-100000.0) |
83 | 85 |
self.doubleSpinBoxY.setMaximum(100000.0) |
84 | 86 |
self.doubleSpinBoxY.setObjectName("doubleSpinBoxY") |
85 | 87 |
self.horizontalLayout.addWidget(self.doubleSpinBoxY) |
86 |
self.label_4 = QtWidgets.QLabel(ImportTextFromCADDialog) |
|
87 |
self.label_4.setMaximumSize(QtCore.QSize(60, 16777215)) |
|
88 |
self.label_4.setObjectName("label_4") |
|
89 |
self.horizontalLayout.addWidget(self.label_4) |
|
90 |
self.doubleSpinBoxS = QtWidgets.QDoubleSpinBox(ImportTextFromCADDialog) |
|
91 |
self.doubleSpinBoxS.setDecimals(5) |
|
92 |
self.doubleSpinBoxS.setMaximum(1000.0) |
|
93 |
self.doubleSpinBoxS.setProperty("value", 1.0) |
|
94 |
self.doubleSpinBoxS.setObjectName("doubleSpinBoxS") |
|
95 |
self.horizontalLayout.addWidget(self.doubleSpinBoxS) |
|
96 | 88 |
self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 5) |
97 | 89 |
self.verticalLayout.addLayout(self.gridLayout) |
98 | 90 |
self.errorLabel = QtWidgets.QLabel(ImportTextFromCADDialog) |
... | ... | |
115 | 107 |
self.pushButtonClose.setText(_translate("ImportTextFromCADDialog", "Close")) |
116 | 108 |
self.label_3.setText(_translate("ImportTextFromCADDialog", "X offset : ")) |
117 | 109 |
self.label_5.setText(_translate("ImportTextFromCADDialog", " Y offset : ")) |
118 |
self.label_4.setText(_translate("ImportTextFromCADDialog", " Scale : ")) |
|
119 | 110 |
import MainWindow_rc |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
274 | 274 |
self.addMessage.connect(self.onAddMessage) |
275 | 275 |
self.actionFindReplaceText.triggered.connect(self.findReplaceTextClicked) |
276 | 276 |
self.actionSymbol_Replace_Insert.triggered.connect(self.replaceInsertSymbolClicked) |
277 |
self.actionConnectLineToSymbol.triggered.connect(self.on_connect_line_to_symbol) |
|
277 | 278 |
self.actionGlobal_Validation.triggered.connect(self.on_validation_global_clicked) |
278 | 279 |
self.actionEditRecognizeLine.triggered.connect(self.on_recognize_line) |
279 | 280 |
self.pushButtonDetectSymbol.clicked.connect(self.show_detect_symbol_dialog) |
... | ... | |
705 | 706 |
dlg.show() |
706 | 707 |
dlg.exec_() |
707 | 708 | |
709 |
def on_connect_line_to_symbol(self): |
|
710 |
"""connect line to symbol""" |
|
711 |
from LineDetector import LineDetector |
|
712 | ||
713 |
if not self.graphicsView.hasImage(): |
|
714 |
self.showImageSelectionMessageBox() |
|
715 |
return |
|
716 | ||
717 |
app_doc_data = AppDocData.instance() |
|
718 |
configs = app_doc_data.getConfigs('Project', 'Operation') |
|
719 |
configs = app_doc_data.getConfigs('Line Detector', 'Length to connect line') |
|
720 |
toler = int(configs[0].value) if configs else 20 |
|
721 |
detector = LineDetector(app_doc_data.imgSrc) |
|
722 | ||
723 |
lines = [item for item in self.graphicsView.scene().items() if type(item) is QEngineeringLineItem] |
|
724 |
symbols = [item for item in self.graphicsView.scene().items() if issubclass(type(item), SymbolSvgItem)] |
|
725 |
if lines: |
|
726 |
# connect line to symbol |
|
727 |
try: |
|
728 |
for line in lines: |
|
729 |
matches = [_symbol for _symbol in symbols if _symbol.is_connectable(line, toler=toler)] |
|
730 |
for _symbol in matches: |
|
731 |
detector.connectLineToSymbol(line, _symbol, toler=toler) |
|
732 |
except Exception as ex: |
|
733 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
|
734 |
f"{sys.exc_info()[-1].tb_lineno}" |
|
735 |
self.addMessage.emit(MessageType.Error, message) |
|
736 |
# up to here |
|
737 | ||
738 |
# connect line to line |
|
739 |
try: |
|
740 |
for line in lines: |
|
741 |
matches = [it for it in lines if (it is not line) and (not line.isParallel(it))] |
|
742 | ||
743 |
for match in matches: |
|
744 |
detector.connectLineToLine(match, line, toler) |
|
745 |
except Exception as ex: |
|
746 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
|
747 |
f"{sys.exc_info()[-1].tb_lineno}" |
|
748 |
self.addMessage.emit(MessageType.Error, message) |
|
749 |
# up to here |
|
750 | ||
751 |
QMessageBox.information(self, self.tr('Information'), self.tr('Connecting between symbols and lines is complete')) |
|
752 | ||
708 | 753 |
def on_recognize_line(self): |
709 | 754 |
"""recognize lines in selected area""" |
710 | 755 |
from RecognizeLineCommand import RecognizeLineCommand |
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.13.0
|
|
5 |
# Created by: PyQt5 UI code generator 5.13.1
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 | |
... | ... | |
654 | 654 |
self.actionGlobal_Validation = QtWidgets.QAction(MainWindow) |
655 | 655 |
self.actionGlobal_Validation.setIcon(icon9) |
656 | 656 |
self.actionGlobal_Validation.setObjectName("actionGlobal_Validation") |
657 |
self.actionConnectLineToSymbol = QtWidgets.QAction(MainWindow) |
|
658 |
self.actionConnectLineToSymbol.setObjectName("actionConnectLineToSymbol") |
|
657 | 659 |
self.menuExport.addAction(self.actionExportAsSVG) |
658 | 660 |
self.menuExport.addAction(self.actionExportAsXML) |
659 | 661 |
self.menuExport.addAction(self.actionExportAsImage) |
... | ... | |
702 | 704 |
self.menu_5.addAction(self.actionText_Data_List) |
703 | 705 |
self.menu_5.addSeparator() |
704 | 706 |
self.menu_5.addAction(self.actionSymbol_Replace_Insert) |
707 |
self.menu_5.addAction(self.actionConnectLineToSymbol) |
|
705 | 708 |
self.menu_5.addSeparator() |
706 | 709 |
self.menu_5.addAction(self.actionEditRecognizeLine) |
707 | 710 |
self.menu_5.addAction(self.actionRecognizeTable) |
... | ... | |
863 | 866 |
self.actionRotateCCW.setToolTip(_translate("MainWindow", "Roate counter clockwise")) |
864 | 867 |
self.actionReplace_Code_Table.setText(_translate("MainWindow", "Replace Code Table")) |
865 | 868 |
self.actionGlobal_Validation.setText(_translate("MainWindow", "Global Validation")) |
869 |
self.actionConnectLineToSymbol.setText(_translate("MainWindow", "Connect between symbols and lines")) |
|
866 | 870 |
import MainWindow_rc |
DTI_PID/DTI_PID/UI/Configuration.ui | ||
---|---|---|
580 | 580 |
<layout class="QGridLayout" name="gridLayout_3"> |
581 | 581 |
<item row="0" column="0"> |
582 | 582 |
<layout class="QGridLayout" name="gridLayout_28"> |
583 |
<item row="0" column="1"> |
|
584 |
<spacer name="horizontalSpacer_10"> |
|
585 |
<property name="orientation"> |
|
586 |
<enum>Qt::Horizontal</enum> |
|
587 |
</property> |
|
588 |
<property name="sizeHint" stdset="0"> |
|
589 |
<size> |
|
590 |
<width>40</width> |
|
591 |
<height>20</height> |
|
592 |
</size> |
|
593 |
</property> |
|
594 |
</spacer> |
|
595 |
</item> |
|
583 | 596 |
<item row="0" column="0"> |
584 | 597 |
<widget class="QPushButton" name="pushButtonLineNoAttribute"> |
585 | 598 |
<property name="minimumSize"> |
... | ... | |
599 | 612 |
</property> |
600 | 613 |
</widget> |
601 | 614 |
</item> |
602 |
<item row="0" column="3"> |
|
603 |
<widget class="QPushButton" name="pushButtonDeleteProperty"> |
|
604 |
<property name="minimumSize"> |
|
605 |
<size> |
|
606 |
<width>50</width> |
|
607 |
<height>0</height> |
|
608 |
</size> |
|
609 |
</property> |
|
610 |
<property name="maximumSize"> |
|
611 |
<size> |
|
612 |
<width>50</width> |
|
613 |
<height>16777215</height> |
|
614 |
</size> |
|
615 |
</property> |
|
615 |
<item row="1" column="0" colspan="4"> |
|
616 |
<widget class="QTableView" name="tableViewLineNo"/> |
|
617 |
</item> |
|
618 |
<item row="0" column="2"> |
|
619 |
<widget class="QToolButton" name="pushButtonAddProperty"> |
|
616 | 620 |
<property name="text"> |
617 | 621 |
<string/> |
618 | 622 |
</property> |
619 | 623 |
<property name="icon"> |
620 | 624 |
<iconset resource="../res/MainWindow.qrc"> |
621 |
<normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset>
|
|
625 |
<normaloff>:/newPrefix/Add.svg</normaloff>:/newPrefix/Add.svg</iconset>
|
|
622 | 626 |
</property> |
623 | 627 |
</widget> |
624 | 628 |
</item> |
625 |
<item row="0" column="1"> |
|
626 |
<spacer name="horizontalSpacer_10"> |
|
627 |
<property name="orientation"> |
|
628 |
<enum>Qt::Horizontal</enum> |
|
629 |
</property> |
|
630 |
<property name="sizeHint" stdset="0"> |
|
631 |
<size> |
|
632 |
<width>40</width> |
|
633 |
<height>20</height> |
|
634 |
</size> |
|
635 |
</property> |
|
636 |
</spacer> |
|
637 |
</item> |
|
638 |
<item row="0" column="2"> |
|
639 |
<widget class="QPushButton" name="pushButtonAddProperty"> |
|
640 |
<property name="minimumSize"> |
|
641 |
<size> |
|
642 |
<width>50</width> |
|
643 |
<height>0</height> |
|
644 |
</size> |
|
645 |
</property> |
|
646 |
<property name="maximumSize"> |
|
647 |
<size> |
|
648 |
<width>50</width> |
|
649 |
<height>16777215</height> |
|
650 |
</size> |
|
651 |
</property> |
|
629 |
<item row="0" column="3"> |
|
630 |
<widget class="QToolButton" name="pushButtonDeleteProperty"> |
|
652 | 631 |
<property name="text"> |
653 | 632 |
<string/> |
654 | 633 |
</property> |
655 | 634 |
<property name="icon"> |
656 | 635 |
<iconset resource="../res/MainWindow.qrc"> |
657 |
<normaloff>:/newPrefix/Add.svg</normaloff>:/newPrefix/Add.svg</iconset> |
|
658 |
</property> |
|
659 |
<property name="default"> |
|
660 |
<bool>false</bool> |
|
636 |
<normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset> |
|
661 | 637 |
</property> |
662 | 638 |
</widget> |
663 | 639 |
</item> |
664 |
<item row="1" column="0" colspan="4"> |
|
665 |
<widget class="QTableView" name="tableViewLineNo"/> |
|
666 |
</item> |
|
667 | 640 |
</layout> |
668 | 641 |
</item> |
669 | 642 |
</layout> |
... | ... | |
677 | 650 |
<layout class="QGridLayout" name="gridLayout_34"> |
678 | 651 |
<item row="0" column="0"> |
679 | 652 |
<layout class="QGridLayout" name="gridLayout_33"> |
680 |
<item row="0" column="3"> |
|
681 |
<widget class="QPushButton" name="pushButtonDeleteTagProperty"> |
|
682 |
<property name="maximumSize"> |
|
683 |
<size> |
|
684 |
<width>50</width> |
|
685 |
<height>16777215</height> |
|
686 |
</size> |
|
687 |
</property> |
|
688 |
<property name="text"> |
|
689 |
<string/> |
|
690 |
</property> |
|
691 |
<property name="icon"> |
|
692 |
<iconset resource="../res/MainWindow.qrc"> |
|
693 |
<normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset> |
|
694 |
</property> |
|
695 |
</widget> |
|
696 |
</item> |
|
697 |
<item row="0" column="2"> |
|
698 |
<widget class="QPushButton" name="pushButtonAddTagProperty"> |
|
699 |
<property name="maximumSize"> |
|
700 |
<size> |
|
701 |
<width>50</width> |
|
702 |
<height>16777215</height> |
|
703 |
</size> |
|
704 |
</property> |
|
653 |
<item row="0" column="0"> |
|
654 |
<widget class="QPushButton" name="pushButtonTagNoAttribute"> |
|
705 | 655 |
<property name="text"> |
706 |
<string/> |
|
707 |
</property> |
|
708 |
<property name="icon"> |
|
709 |
<iconset resource="../res/MainWindow.qrc"> |
|
710 |
<normaloff>:/newPrefix/Add.svg</normaloff>:/newPrefix/Add.svg</iconset> |
|
656 |
<string>Attribute</string> |
|
711 | 657 |
</property> |
712 | 658 |
</widget> |
713 | 659 |
</item> |
... | ... | |
724 | 670 |
</property> |
725 | 671 |
</spacer> |
726 | 672 |
</item> |
727 |
<item row="0" column="0"> |
|
728 |
<widget class="QPushButton" name="pushButtonTagNoAttribute"> |
|
673 |
<item row="1" column="0" colspan="4"> |
|
674 |
<widget class="QTableView" name="tableViewTagNo"/> |
|
675 |
</item> |
|
676 |
<item row="0" column="2" alignment="Qt::AlignHCenter"> |
|
677 |
<widget class="QToolButton" name="pushButtonAddTagProperty"> |
|
729 | 678 |
<property name="text"> |
730 |
<string>Attribute</string> |
|
679 |
<string/> |
|
680 |
</property> |
|
681 |
<property name="icon"> |
|
682 |
<iconset resource="../res/MainWindow.qrc"> |
|
683 |
<normaloff>:/newPrefix/Add.svg</normaloff>:/newPrefix/Add.svg</iconset> |
|
731 | 684 |
</property> |
732 | 685 |
</widget> |
733 | 686 |
</item> |
734 |
<item row="1" column="0" colspan="4"> |
|
735 |
<widget class="QTableView" name="tableViewTagNo"/> |
|
687 |
<item row="0" column="3" alignment="Qt::AlignHCenter"> |
|
688 |
<widget class="QToolButton" name="pushButtonDeleteTagProperty"> |
|
689 |
<property name="text"> |
|
690 |
<string/> |
|
691 |
</property> |
|
692 |
<property name="icon"> |
|
693 |
<iconset resource="../res/MainWindow.qrc"> |
|
694 |
<normaloff>:/newPrefix/Remove.svg</normaloff>:/newPrefix/Remove.svg</iconset> |
|
695 |
</property> |
|
696 |
</widget> |
|
736 | 697 |
</item> |
737 | 698 |
</layout> |
738 | 699 |
</item> |
... | ... | |
1911 | 1872 |
<tabstop>radioButtonDiagonalYes</tabstop> |
1912 | 1873 |
<tabstop>radioButtonDiagonalNo</tabstop> |
1913 | 1874 |
<tabstop>pushButtonLineNoAttribute</tabstop> |
1914 |
<tabstop>pushButtonAddProperty</tabstop> |
|
1915 |
<tabstop>pushButtonDeleteProperty</tabstop> |
|
1916 | 1875 |
<tabstop>pushButtonTagNoAttribute</tabstop> |
1917 |
<tabstop>pushButtonAddTagProperty</tabstop> |
|
1918 |
<tabstop>pushButtonDeleteTagProperty</tabstop> |
|
1919 | 1876 |
<tabstop>checkBoxNoteNoSymbolName</tabstop> |
1920 | 1877 |
<tabstop>lineEditNoteNoSymbolName</tabstop> |
1921 | 1878 |
<tabstop>lineEditNoteNoExpression</tabstop> |
... | ... | |
1984 | 1941 |
</connections> |
1985 | 1942 |
<buttongroups> |
1986 | 1943 |
<buttongroup name="buttonGroup_7"/> |
1987 |
<buttongroup name="buttonGroup_5"/> |
|
1988 |
<buttongroup name="buttonGroup_6"/> |
|
1989 | 1944 |
<buttongroup name="buttonGroup_2"/> |
1990 |
<buttongroup name="buttonGroup_8"/> |
|
1991 | 1945 |
<buttongroup name="buttonGroup_3"/> |
1992 |
<buttongroup name="buttonGroup_9"/> |
|
1993 | 1946 |
<buttongroup name="buttonGroup"/> |
1947 |
<buttongroup name="buttonGroup_9"/> |
|
1948 |
<buttongroup name="buttonGroup_6"/> |
|
1994 | 1949 |
<buttongroup name="buttonGroup_4"/> |
1950 |
<buttongroup name="buttonGroup_5"/> |
|
1951 |
<buttongroup name="buttonGroup_8"/> |
|
1995 | 1952 |
</buttongroups> |
1996 | 1953 |
</ui> |
DTI_PID/DTI_PID/UI/Configuration_Area.ui | ||
---|---|---|
29 | 29 |
<string>Area</string> |
30 | 30 |
</property> |
31 | 31 |
<layout class="QGridLayout" name="gridLayout_2"> |
32 |
<item row="3" column="0"> |
|
33 |
<widget class="QLabel" name="label_3"> |
|
34 |
<property name="text"> |
|
35 |
<string>Rev. No : </string> |
|
36 |
</property> |
|
37 |
</widget> |
|
38 |
</item> |
|
39 |
<item row="5" column="4"> |
|
40 |
<widget class="QPushButton" name="pushButtonUnitArea"> |
|
41 |
<property name="maximumSize"> |
|
42 |
<size> |
|
43 |
<width>24</width> |
|
44 |
<height>16777215</height> |
|
45 |
</size> |
|
46 |
</property> |
|
47 |
<property name="text"> |
|
48 |
<string>...</string> |
|
49 |
</property> |
|
50 |
</widget> |
|
51 |
</item> |
|
52 |
<item row="3" column="1"> |
|
53 |
<widget class="QLineEdit" name="lineEditRevNo"> |
|
54 |
<property name="readOnly"> |
|
55 |
<bool>true</bool> |
|
56 |
</property> |
|
57 |
</widget> |
|
58 |
</item> |
|
59 |
<item row="2" column="4"> |
|
60 |
<widget class="QPushButton" name="pushButtonHistoryDataArea"> |
|
61 |
<property name="maximumSize"> |
|
62 |
<size> |
|
63 |
<width>24</width> |
|
64 |
<height>16777215</height> |
|
65 |
</size> |
|
66 |
</property> |
|
67 |
<property name="text"> |
|
68 |
<string>...</string> |
|
69 |
</property> |
|
70 |
</widget> |
|
71 |
</item> |
|
72 |
<item row="1" column="1"> |
|
73 |
<widget class="QLineEdit" name="lineEditNote"> |
|
74 |
<property name="readOnly"> |
|
75 |
<bool>true</bool> |
|
76 |
</property> |
|
77 |
</widget> |
|
78 |
</item> |
|
79 |
<item row="2" column="1"> |
|
80 |
<widget class="QLineEdit" name="lineEditHistoryData"> |
|
81 |
<property name="readOnly"> |
|
82 |
<bool>true</bool> |
|
83 |
</property> |
|
84 |
</widget> |
|
85 |
</item> |
|
86 |
<item row="3" column="4"> |
|
87 |
<widget class="QPushButton" name="pushButtonRevNoArea"> |
|
88 |
<property name="maximumSize"> |
|
89 |
<size> |
|
90 |
<width>24</width> |
|
91 |
<height>16777215</height> |
|
92 |
</size> |
|
93 |
</property> |
|
94 |
<property name="text"> |
|
95 |
<string>...</string> |
|
96 |
</property> |
|
97 |
</widget> |
|
98 |
</item> |
|
99 | 32 |
<item row="0" column="0"> |
100 |
<widget class="QLabel" name="label_6"> |
|
101 |
<property name="font"> |
|
102 |
<font> |
|
103 |
<weight>50</weight> |
|
104 |
<bold>false</bold> |
|
105 |
</font> |
|
106 |
</property> |
|
107 |
<property name="text"> |
|
108 |
<string>Drawing : </string> |
|
109 |
</property> |
|
110 |
</widget> |
|
111 |
</item> |
|
112 |
<item row="0" column="1"> |
|
113 |
<widget class="QLineEdit" name="lineEditDrawing"> |
|
114 |
<property name="readOnly"> |
|
115 |
<bool>true</bool> |
|
116 |
</property> |
|
117 |
</widget> |
|
118 |
</item> |
|
119 |
<item row="5" column="0"> |
|
120 |
<widget class="QLabel" name="label_7"> |
|
121 |
<property name="text"> |
|
122 |
<string>Unit : </string> |
|
123 |
</property> |
|
124 |
</widget> |
|
125 |
</item> |
|
126 |
<item row="4" column="0"> |
|
127 |
<widget class="QLabel" name="label_4"> |
|
128 |
<property name="text"> |
|
129 |
<string>Drawing No : </string> |
|
130 |
</property> |
|
131 |
</widget> |
|
132 |
</item> |
|
133 |
<item row="1" column="4"> |
|
134 |
<widget class="QPushButton" name="pushButtonNoteArea"> |
|
135 |
<property name="minimumSize"> |
|
136 |
<size> |
|
137 |
<width>20</width> |
|
138 |
<height>0</height> |
|
139 |
</size> |
|
140 |
</property> |
|
141 |
<property name="maximumSize"> |
|
142 |
<size> |
|
143 |
<width>24</width> |
|
144 |
<height>16777215</height> |
|
145 |
</size> |
|
146 |
</property> |
|
147 |
<property name="text"> |
|
148 |
<string>...</string> |
|
149 |
</property> |
|
150 |
</widget> |
|
151 |
</item> |
|
152 |
<item row="2" column="0"> |
|
153 |
<widget class="QLabel" name="label_2"> |
|
154 |
<property name="text"> |
|
155 |
<string>History Data : </string> |
|
156 |
</property> |
|
157 |
</widget> |
|
158 |
</item> |
내보내기 Unified diff