개정판 a2e73aaf
issue #000: temp func text rotate added, hmb on going
Change-Id: I16ca07672aaf8a916ac366136a53397e436bf385
DTI_PID/DTI_PID/HMBDialog.py | ||
---|---|---|
17 | 17 |
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 'Shapes')) |
18 | 18 |
|
19 | 19 |
|
20 |
class HMBDelegate(QStyledItemDelegate): |
|
21 |
def createEditor(self, parent, option, index): |
|
22 |
editor = super(HMBDelegate, self).createEditor(parent, option, index) |
|
23 |
if index.column() != 0: |
|
24 |
return editor |
|
25 |
|
|
26 |
|
|
27 |
class HmbModel(QStandardItemModel): |
|
28 |
def __init__(self, parent=None, *args): |
|
29 |
QStandardItemModel.__init__(self, parent, *args) |
|
30 |
|
|
31 |
def data(self, index, role): |
|
32 |
if not index.isValid(): |
|
33 |
return None |
|
34 |
if role in [Qt.EditRole]: |
|
35 |
print('a') |
|
36 |
|
|
37 |
return super(HmbModel, self).data(index, role) |
|
38 |
|
|
20 | 39 |
class QHMBDialog(QDialog): |
21 | 40 |
def __init__(self, parent): |
22 | 41 |
from HMB_UI import Ui_HMBDialog |
... | ... | |
37 | 56 |
self.layouts = [self.ui.gridLayout_3] |
38 | 57 |
self.views = [self.ui.tableViewHMB] |
39 | 58 |
|
59 |
self.dataChanged_original = None |
|
60 |
|
|
40 | 61 |
if self.fill_hmb_data(): |
41 | 62 |
self.ui.buttonBox.button(QDialogButtonBox.Ok).setText(self.tr('Save')) |
42 | 63 |
|
... | ... | |
49 | 70 |
f"{sys.exc_info()[-1].tb_lineno}" |
50 | 71 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
51 | 72 |
|
73 |
def dataChanged(self, *args): |
|
74 |
tab = self.ui.tabWidget.currentWidget() |
|
75 |
index = self.tabs.index(tab) |
|
76 |
view = self.views[index] |
|
77 |
|
|
78 |
self.dataChanged_original(args[0], args[1], args[2]) |
|
79 |
|
|
52 | 80 |
def fill_hmb_data(self): |
53 | 81 |
"""load hmb data and fill table view""" |
54 | 82 |
import uuid |
55 | 83 |
|
56 | 84 |
try: |
57 | 85 |
hmbs = AppDocData.instance().get_hmb_data(None) |
58 |
if True:#not hmbs:
|
|
86 |
if not hmbs: |
|
59 | 87 |
return False |
60 | 88 |
|
61 | 89 |
for index in range(len(hmbs[0].datas)): |
... | ... | |
73 | 101 |
self.layouts.append(gridLayout) |
74 | 102 |
self.views.append(tableViewHMB) |
75 | 103 |
|
76 |
model = QStandardItemModel()
|
|
104 |
model = HmbModel()
|
|
77 | 105 |
header = ['UID', 'StreamNumber'] |
78 | 106 |
|
79 | 107 |
for hmb in hmbs: |
80 | 108 |
UID = hmb.uid |
81 | 109 |
STREAM_NO = hmb.stream_no |
82 |
items = [QStandardItem(UID), QStandardItem(STREAM_NO)] |
|
110 |
items = [QStandardItem(UID)] |
|
111 |
item = QStandardItem(STREAM_NO) |
|
112 |
#item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsSelectable) |
|
113 |
items.append(item) |
|
83 | 114 |
|
84 | 115 |
for data in sorted(hmb.datas[index], key=lambda param: param.index): |
85 | 116 |
if hmbs.index(hmb) == 0: |
86 | 117 |
header.append(f"{data.name}\n({data.unit})" if data.unit else f"{data.name}") |
87 |
items.append(QStandardItem(data.value)) |
|
118 |
item = QStandardItem(data.value) |
|
119 |
#item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable) |
|
120 |
items.append(item) |
|
88 | 121 |
model.appendRow(items) |
89 | 122 |
|
90 | 123 |
model.setHorizontalHeaderLabels(header) |
91 | 124 |
|
92 | 125 |
self.views[index].setModel(model) |
126 |
delegate = HMBDelegate(self.views[index]) |
|
127 |
self.views[index].setItemDelegate(delegate) |
|
128 |
self.dataChanged_original = self.views[index].dataChanged |
|
129 |
self.views[index].dataChanged = self.dataChanged |
|
93 | 130 |
self.views[index].resizeColumnsToContents() |
94 |
self.views[index].setEditTriggers(QAbstractItemView.NoEditTriggers) |
|
131 |
#self.views[index].setEditTriggers(QAbstractItemView.NoEditTriggers)
|
|
95 | 132 |
self.views[index].setAlternatingRowColors(True) |
96 | 133 |
self.ui.tabWidget.setTabText(self.ui.tabWidget.indexOf(self.tabs[index]), hmbs[0].datas[index][0].case) |
97 | 134 |
|
DTI_PID/DTI_PID/TextItemEditDialog.py | ||
---|---|---|
28 | 28 |
self.ui.pushButtonReplaceText.clicked.connect(self.replaceTextClicked) |
29 | 29 |
self.ui.checkBoxUID.stateChanged.connect(self.checkBoxUIDChanged) |
30 | 30 |
self.ui.checkBoxSymbol.stateChanged.connect(self.checkBoxSymbolChanged) |
31 |
self.ui.pushButtonSetAngle.clicked.connect(self.set_angle_zero) |
|
31 | 32 |
|
32 | 33 |
self.ui.lineEditFindText.setFocus() |
33 | 34 |
|
35 |
def set_angle_zero(self): |
|
36 |
text_items = [item for item in self.mainWindow.graphicsView.scene().items() |
|
37 |
if issubclass(type(item), QEngineeringTextItem) and item.owner] |
|
38 |
for item in text_items: |
|
39 |
if item.angle != 0: |
|
40 |
item.angle = 0 |
|
41 |
width = item.size[0] |
|
42 |
height = item.size[1] |
|
43 |
item.size = [height, width] |
|
44 |
|
|
45 |
item.rotate() |
|
46 |
|
|
34 | 47 |
def is_valid_uuid(self, text, version=4): |
35 | 48 |
""" Check if uuid_to_test is a valid UUID. """ |
36 | 49 |
import uuid |
DTI_PID/DTI_PID/TextItemEdit_UI.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
# Form implementation generated from reading ui file '.\UI\TextItemEdit.ui'
|
|
3 |
# Form implementation generated from reading ui file './UI/TextItemEdit.ui'
|
|
4 | 4 |
# |
5 |
# Created by: PyQt5 UI code generator 5.13.0
|
|
5 |
# Created by: PyQt5 UI code generator 5.11.3
|
|
6 | 6 |
# |
7 | 7 |
# WARNING! All changes made in this file will be lost! |
8 | 8 |
|
9 |
|
|
10 | 9 |
from PyQt5 import QtCore, QtGui, QtWidgets |
11 | 10 |
|
12 |
|
|
13 | 11 |
class Ui_TextItemEditDialog(object): |
14 | 12 |
def setupUi(self, TextItemEditDialog): |
15 | 13 |
TextItemEditDialog.setObjectName("TextItemEditDialog") |
... | ... | |
47 | 45 |
self.gridLayout.addLayout(self.gridLayout_2, 0, 0, 1, 1) |
48 | 46 |
self.horizontalLayout = QtWidgets.QHBoxLayout() |
49 | 47 |
self.horizontalLayout.setObjectName("horizontalLayout") |
48 |
self.pushButtonSetAngle = QtWidgets.QPushButton(TextItemEditDialog) |
|
49 |
self.pushButtonSetAngle.setObjectName("pushButtonSetAngle") |
|
50 |
self.horizontalLayout.addWidget(self.pushButtonSetAngle) |
|
50 | 51 |
self.checkBoxUID = QtWidgets.QCheckBox(TextItemEditDialog) |
51 | 52 |
self.checkBoxUID.setFocusPolicy(QtCore.Qt.NoFocus) |
52 | 53 |
self.checkBoxUID.setObjectName("checkBoxUID") |
... | ... | |
73 | 74 |
self.pushButtonReplaceText.setText(_translate("TextItemEditDialog", "Replace")) |
74 | 75 |
self.label_2.setText(_translate("TextItemEditDialog", "Text : ")) |
75 | 76 |
self.label.setText(_translate("TextItemEditDialog", "Replace : ")) |
77 |
self.pushButtonSetAngle.setText(_translate("TextItemEditDialog", "Angle 0")) |
|
76 | 78 |
self.checkBoxUID.setText(_translate("TextItemEditDialog", "UID")) |
77 | 79 |
self.checkBoxSymbol.setText(_translate("TextItemEditDialog", "Symbol")) |
80 |
|
|
78 | 81 |
import MainWindow_rc |
82 |
|
|
83 |
if __name__ == "__main__": |
|
84 |
import sys |
|
85 |
app = QtWidgets.QApplication(sys.argv) |
|
86 |
TextItemEditDialog = QtWidgets.QDialog() |
|
87 |
ui = Ui_TextItemEditDialog() |
|
88 |
ui.setupUi(TextItemEditDialog) |
|
89 |
TextItemEditDialog.show() |
|
90 |
sys.exit(app.exec_()) |
|
91 |
|
DTI_PID/DTI_PID/UI/TextItemEdit.ui | ||
---|---|---|
74 | 74 |
<item row="2" column="0"> |
75 | 75 |
<layout class="QHBoxLayout" name="horizontalLayout"> |
76 | 76 |
<item> |
77 |
<widget class="QPushButton" name="pushButtonSetAngle"> |
|
78 |
<property name="text"> |
|
79 |
<string>Angle 0</string> |
|
80 |
</property> |
|
81 |
</widget> |
|
82 |
</item> |
|
83 |
<item> |
|
77 | 84 |
<widget class="QCheckBox" name="checkBoxUID"> |
78 | 85 |
<property name="focusPolicy"> |
79 | 86 |
<enum>Qt::NoFocus</enum> |
minorTools/xmlTextSearcher.py | ||
---|---|---|
3 | 3 |
def finder(): |
4 | 4 |
print("finder start") |
5 | 5 |
|
6 |
targetText = ['>gate cap drain']
|
|
6 |
targetText = ['>Interlock(1)<']
|
|
7 | 7 |
path = 'W:\ID2_Project\Eurochem\Temp' |
8 | 8 |
|
9 | 9 |
print("target : " + str(len(targetText))) |
내보내기 Unified diff