Skip to content

Commit 5a5a1d9

Browse files
committed
remove VarDialog.ui
1 parent 60e54df commit 5a5a1d9

File tree

2 files changed

+41
-158
lines changed

2 files changed

+41
-158
lines changed

RTTView.py

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -474,10 +474,10 @@ def parse_elffile(self, path):
474474
for row, val in self.Vals.items():
475475
var = self.Vars[val.name]
476476
if val.addr != var.addr:
477-
val = val._replace(addr = var.addr)
477+
self.Vals[row] = self.Vals[row]._replace(addr = var.addr)
478478
if val.size != var.size:
479-
typ, fmt = self.len2type[var.size]
480-
val = val._replace(size = var.size, typ = typ, fmt = fmt)
479+
typ, fmt = self.len2type[var.size][0]
480+
self.Vals[row] = self.Vals[row]._replace(size = var.size, typ = typ, fmt = fmt)
481481

482482
self.tblVar_redraw()
483483

@@ -495,12 +495,13 @@ def tblVar_redraw(self):
495495
for series in self.PlotChart.series():
496496
self.PlotChart.removeSeries(series)
497497

498-
self.tblVar.insertRow(0)
499-
500498
for row, val in self.Vals.items():
501499
self.tblVar.insertRow(row)
502500
self.tblVar_setRow(row, val)
503501

502+
if self.tblVar.rowCount() < self.N_CURVE:
503+
self.tblVar.insertRow(self.tblVar.rowCount())
504+
504505
def tblVar_setRow(self, row: int, val: Valuable):
505506
self.tblVar.setItem(row, 0, QTableWidgetItem(val.name))
506507
self.tblVar.setItem(row, 1, QTableWidgetItem(f'{val.addr:08X}'))
@@ -519,30 +520,28 @@ def on_tblVar_cellDoubleClicked(self, row, column):
519520
if self.btnOpen.text() == '关闭连接': return
520521

521522
if column < 3:
522-
if len(self.Vals) == self.N_CURVE: return
523-
524523
dlg = VarDialog(self, row)
525524
if dlg.exec() == QDialog.Accepted:
526-
var = self.Vars[dlg.cmbVar.currentText()]
525+
var = self.Vars[dlg.cmbName.currentText()]
527526
typ, fmt = dlg.cmbType.currentText(), dlg.cmbType.currentData()
528527

529528
self.Vals[row] = Valuable(var.name, var.addr, var.size, typ, fmt, True)
530529

531530
self.tblVar_setRow(row, self.Vals[row])
532531

533-
if row == self.tblVar.rowCount() - 1: # the last row
532+
if self.tblVar.rowCount() < self.N_CURVE and row == self.tblVar.rowCount() - 1:
534533
self.tblVar.insertRow(self.tblVar.rowCount())
535534

536535
elif column == 3:
537-
if row != self.tblVar.rowCount() - 1: # not last row
536+
if self.tblVar.item(row, 3):
538537
self.Vals[row] = self.Vals[row]._replace(show = not self.Vals[row].show)
539538

540539
self.tblVar.item(row, 3).setText('显示' if self.Vals[row].show else '不显示')
541540

542541
self.PlotCurve[row].setVisible(self.Vals[row].show)
543542

544543
elif column == 4:
545-
if row != self.tblVar.rowCount() - 1: # not last row
544+
if self.tblVar.item(row, 4):
546545
self.Vals.pop(row)
547546
self.Vals = {i: val for i, val in enumerate(self.Vals.values())}
548547

@@ -576,20 +575,47 @@ def closeEvent(self, evt):
576575
self.conf.write(open('setting.ini', 'w', encoding='utf-8'))
577576

578577

578+
579+
from PyQt5.QtWidgets import QSizePolicy, QDialogButtonBox
580+
579581
class VarDialog(QDialog):
580582
def __init__(self, parent, row):
581583
super(VarDialog, self).__init__(parent)
582584

583-
uic.loadUi('VarDialog.ui', self)
585+
self.resize(400, 100)
586+
self.setWindowTitle('VarDialog')
587+
588+
self.cmbType = QtWidgets.QComboBox(self)
589+
self.cmbType.setMinimumSize(QtCore.QSize(80, 0))
590+
591+
self.cmbName = QtWidgets.QComboBox(self)
592+
self.cmbName.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
593+
self.cmbName.currentTextChanged.connect(self.on_cmbName_currentTextChanged)
584594

585-
self.cmbVar.addItems(parent.Vars.keys())
595+
self.hLayout = QtWidgets.QHBoxLayout()
596+
self.hLayout.addWidget(QtWidgets.QLabel('变量:', self))
597+
self.hLayout.addWidget(self.cmbName)
598+
self.hLayout.addWidget(QtWidgets.QLabel(' ', self))
599+
self.hLayout.addWidget(QtWidgets.QLabel('类型:', self))
600+
self.hLayout.addWidget(self.cmbType)
601+
602+
self.btnBox = QtWidgets.QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, self)
603+
self.btnBox.accepted.connect(self.accept)
604+
self.btnBox.rejected.connect(self.reject)
605+
606+
self.vLayout = QtWidgets.QVBoxLayout(self)
607+
self.vLayout.addLayout(self.hLayout)
608+
self.vLayout.addItem(QtWidgets.QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))
609+
self.vLayout.addWidget(self.btnBox)
610+
611+
self.cmbName.addItems(parent.Vars.keys())
586612

587613
if parent.tblVar.item(row, 0):
588-
self.cmbVar.setCurrentText(parent.tblVar.item(row, 0).text())
614+
self.cmbName.setCurrentText(parent.tblVar.item(row, 0).text())
589615
self.cmbType.setCurrentText(parent.tblVar.item(row, 2).text())
590616

591617
@pyqtSlot(str)
592-
def on_cmbVar_currentIndexChanged(self, name):
618+
def on_cmbName_currentTextChanged(self, name):
593619
size = self.parent().Vars[name].size
594620

595621
self.cmbType.clear()

VarDialog.ui

Lines changed: 0 additions & 143 deletions
This file was deleted.

0 commit comments

Comments
 (0)