diff --git a/UI/Main/Main.py b/UI/Main/Main.py index 5e12877..26d3bf3 100644 --- a/UI/Main/Main.py +++ b/UI/Main/Main.py @@ -1,4 +1,5 @@ import sys +import time # sys.setrecursionlimit(10000) diff --git a/UI/ProjectManages/ProjectModel.py b/UI/ProjectManages/ProjectModel.py index 50d5ece..9f767c6 100644 --- a/UI/ProjectManages/ProjectModel.py +++ b/UI/ProjectManages/ProjectModel.py @@ -255,8 +255,8 @@ class ProjectButtonDelegate(QItemDelegate): if proType in ['0', '1', '2', '3']: Globals.getValue('varTable').model.initTable() - if lastproType in ['0', '1', '2', '3']: - Globals.getValue('varTable').model.refreshComboBox() + # if lastproType in ['0', '1', '2', '3']: + # Globals.getValue('varTable').model.refreshComboBox() elif proType in ['4']: Globals.getValue('HartTable').model.initTable() elif proType in ['5']: diff --git a/UI/VarManages/MessageWidget.py b/UI/VarManages/MessageWidget.py index f268504..df4d563 100644 --- a/UI/VarManages/MessageWidget.py +++ b/UI/VarManages/MessageWidget.py @@ -64,7 +64,7 @@ class MessageWidget(QWidget): self.recvLabel.setText(QCoreApplication.translate("Form", u"\u63a5\u6536\u5230\u62a5\u6587", None)) self.sendLabel.setText(QCoreApplication.translate("Form", u"\u53d1\u9001\u7684\u62a5\u6587", None)) self.clearButton.setText("清空报文") - self.reButton.setText(QCoreApplication.translate("Form", u"\u505c\u6b62\u5237\u65b0", None)) + self.reButton.setText('停止刷新') self.decimaButton.setText('切换进制') self.timer = QTimer(self) @@ -89,8 +89,10 @@ class MessageWidget(QWidget): def stopRe(self): if self.timer.isActive(): self.timer.stop() + self.reButton.setText('开始刷新') else: self.timer.start() + self.reButton.setText('停止刷新') def addText(self): self.recvEdit.clear() diff --git a/UI/VarManages/ModbusModel.py b/UI/VarManages/ModbusModel.py index 51a6c44..3fb4601 100644 --- a/UI/VarManages/ModbusModel.py +++ b/UI/VarManages/ModbusModel.py @@ -5,7 +5,7 @@ import qtawesome from PyQt5 import QtGui,QtCore,QtWidgets from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, QVariant, QSize -from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QTableView, QMessageBox, QComboBox +from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QTableView, QMessageBox, QComboBox, QStyleOptionViewItem from protocol.Celery.MBTCPMaster import app as MBTCPMApp @@ -76,6 +76,7 @@ class VarTableModel(QAbstractTableModel): self.checkList = ['Unchecked'] * len(self.datas) # self.layoutChanged.emit() self.table.proxy.invalidate() + self.refreshComboBox() def append_data(self, x): @@ -195,12 +196,16 @@ class VarTableModel(QAbstractTableModel): self.table.proxy.invalidate() def refreshComboBox(self): + # print(self.table.rowCount()) for i in range(len(self.datas)): cbRow = str('cb' + str(i) + '5') index = self.index(i, 5) delegate = self.table.itemDelegate(index) - comboBox = getattr(delegate, cbRow) - + delegate.paint(self.table, QStyleOptionViewItem(), index) + try: + comboBox = getattr(delegate, cbRow) + except Exception as e: + continue if self.datas[i][5] in [0, 1]: comboBox.setCurrentIndex(self.datas[i][5]) elif self.datas[i][5] in [3, 4]: @@ -267,6 +272,7 @@ class VarButtonDelegate(QItemDelegate): comboBox.addItem('BADC', 3) comboBox.addItem('DCBA', 4) comboBox.setCurrentText(self.parent().model.datas[index.row()][index.column()]) + comboBox.setMinimumWidth(30) comboBox.currentIndexChanged.connect(self.indexChange) @@ -439,18 +445,15 @@ class VarButtonDelegate(QItemDelegate): trend = ActualTrend(varName = name) trend.show() -class ModbusTypeBox(VarButtonDelegate): +class ModbusTypeBox(QItemDelegate): def __init__(self, parent=None): super(ModbusTypeBox, self).__init__(parent) def paint(self, painter, option, index): - if not self.parent().indexWidget(index): - - - + if index.column() == 5: data = self.parent().model.datas[index.row()] comBox = str('cb' + str(index.row()) + str(index.column())) - setattr(self, comBox, QComboBox(self.parent())) + setattr(self, comBox, QComboBox()) comboBox = getattr(self, comBox) item = ['Coil Status', 'Input Status', 'Input Register', 'Holding Register'] @@ -472,6 +475,7 @@ class ModbusTypeBox(VarButtonDelegate): comboBox.setObjectName('ModbusTypeBox') comboBox.setEditable(True) comboBox.lineEdit().setAlignment(Qt.AlignCenter) + comboBox.setMinimumWidth(200) # comboBox.setEnabled(False) h_box_layout = QHBoxLayout() h_box_layout.addWidget(comboBox) @@ -495,6 +499,7 @@ class ModbusTypeBox(VarButtonDelegate): index, widget ) + self.parent().openPersistentEditor(index) def indexChange(self): sender = self.sender() diff --git a/UI/VarManages/VarTable.py b/UI/VarManages/VarTable.py index 47028c6..836108b 100644 --- a/UI/VarManages/VarTable.py +++ b/UI/VarManages/VarTable.py @@ -100,6 +100,7 @@ class VarTableView(QTableView): self.header.setSectionResizeMode(0, QHeaderView.Fixed) self.header.resizeSection(0, 70) + class HartTableView(VarTableView):