개정판 2ad601a2
issue #000 Stream 데이터와 그래픽 연계 (완료)
HYTOS/HYTOS/FreezeTableWidget.py | ||
---|---|---|
58 | 58 |
def fixed_col_count(self, value): |
59 | 59 |
self._fixed_col_count = value |
60 | 60 |
|
61 |
def selectionModel_selectionChanged(self, selected, deselected): # real signature unknown; restored from __doc__ |
|
62 |
from EngineeringStreamlineItem import QEngineeringStreamlineItem |
|
63 |
from App import App |
|
64 |
if selected.indexes(): |
|
65 |
selected = selected.indexes()[0] |
|
66 |
column_name_stream_no = self.model().headerData(selected.column(), self.horizontalHeader().orientation()) # 열 이름 가져오기 |
|
67 |
mainWnd = App.mainWnd() |
|
68 |
viewer = mainWnd.graphicsView |
|
69 |
for item in [con for con in viewer.scene.items() if type(con) is QEngineeringStreamlineItem]: |
|
70 |
if item.stream_no_text == column_name_stream_no or item.stream_no == column_name_stream_no: |
|
71 |
rect = item.sceneBoundingRect() |
|
72 |
margins = [rect.width(), rect.height()] |
|
73 |
viewer.zoom_rect(rect.adjusted(-margins[0], -margins[1], margins[0], margins[1])) |
|
74 |
item.setSelected(True) |
|
75 |
#if deselected: |
|
76 |
# deselected_index = deselected.indexes()[0] |
|
77 |
# deselected_item = self.model().item(deselected_index.row(), deselected_index.column()) |
|
78 |
# deselected_item.setSelected(False) |
|
79 |
# deselected_item.update() |
|
80 |
item.update() |
|
81 |
else: |
|
82 |
item.setSelected(False) |
|
83 |
item.update() |
|
84 |
""" selectionChanged(self, QItemSelection, QItemSelection) """ |
|
85 |
super(FreezeTableWidget, self).selectionChanged(selected, deselected) |
|
86 |
|
|
61 | 87 |
def setModel(self, model: QAbstractTableModel): |
62 | 88 |
QTableView.setModel(self, model) |
63 | 89 |
self.frozenTableView.setModel(model) |
... | ... | |
70 | 96 |
self.frozenTableView.setColumnHidden(col, True) |
71 | 97 |
else: |
72 | 98 |
self.frozenTableView.setColumnWidth(col, self.columnWidth(col)) |
99 |
self.selection_model = self.selectionModel() |
|
100 |
self.selection_model.selectionChanged.connect(self.selectionModel_selectionChanged) |
|
73 | 101 |
|
74 | 102 |
def updateSectionWidth(self, logicalIndex, oldSize, newSize): |
75 | 103 |
if logicalIndex in range(self._fixed_col_count): |
HYTOS/HYTOS/MainWindow.py | ||
---|---|---|
113 | 113 |
return editor |
114 | 114 |
|
115 | 115 |
def destroyEditor(self, editor, index): |
116 |
from EngineeringStreamlineItem import QEngineeringStreamlineItem |
|
116 | 117 |
""" |
117 | 118 |
change background if value is changed |
118 | 119 |
@param editor: |
... | ... | |
124 | 125 |
changed = editor.currentText() |
125 | 126 |
else: |
126 | 127 |
changed = editor.text() |
127 |
item = editor.parentWidget().parentWidget().model().item(index.row(), index.column()) |
|
128 |
|
|
129 |
freezeTableWidget = editor.parentWidget().parentWidget() |
|
130 |
item = freezeTableWidget.model().item(index.row(), index.column()) |
|
128 | 131 |
value = item.data(Qt.UserRole) |
129 | 132 |
|
130 | 133 |
value_changed = False |
... | ... | |
138 | 141 |
"""clear value of other side""" |
139 | 142 |
if value_changed: |
140 | 143 |
if index.row() == 4: |
141 |
item = editor.parentWidget().parentWidget().model().item(5, index.column())
|
|
144 |
item = freezeTableWidget.model().item(5, index.column())
|
|
142 | 145 |
item.setText('') |
143 | 146 |
item.setBackground(Qt.magenta) |
144 | 147 |
elif index.row() == 5: |
145 |
item = editor.parentWidget().parentWidget().model().item(4, index.column())
|
|
148 |
item = freezeTableWidget.model().item(4, index.column())
|
|
146 | 149 |
item.setText('') |
147 | 150 |
item.setBackground(Qt.magenta) |
148 | 151 |
|
... | ... | |
266 | 269 |
|
267 | 270 |
self.read_settings() |
268 | 271 |
|
272 |
|
|
269 | 273 |
# ToDo.. |
270 | 274 |
# Menu bar - Admin Hide |
271 | 275 |
# Loop Tab Hide |
... | ... | |
3186 | 3190 |
|
3187 | 3191 |
model.setHorizontalHeaderLabels(col_names) |
3188 | 3192 |
self.tableWidgetHMB.setModel(model) |
3189 |
|
|
3190 | 3193 |
self.tableWidgetHMB.resizeColumnsToContents() |
3191 | 3194 |
self.tableWidgetHMB.resizeRowsToContents() |
3195 |
|
|
3192 | 3196 |
except Exception as ex: |
3193 | 3197 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
3194 | 3198 |
f"{sys.exc_info()[-1].tb_lineno}" |
내보내기 Unified diff