From 4e2dc90d94f4ea7381ee76909024b11635924585 Mon Sep 17 00:00:00 2001 From: "ZHANGXUXU\\95193" <951937200@qq.com> Date: Tue, 17 Jun 2025 14:58:01 +0800 Subject: [PATCH] 0617 --- UI/UserManage/UserWidget.py | 14 ++++---------- UI/VarManages/ModbusModel.py | 23 ++++++++++++++--------- UI/VarManages/VarTable.py | 26 +++++--------------------- UI/VarManages/VarWidget.py | 2 +- model/ProjectModel/VarManage.py | 1 - utils/DBModels/ProtocolModel.py | 1 - 6 files changed, 24 insertions(+), 43 deletions(-) diff --git a/UI/UserManage/UserWidget.py b/UI/UserManage/UserWidget.py index 457d47e..49fc6ee 100644 --- a/UI/UserManage/UserWidget.py +++ b/UI/UserManage/UserWidget.py @@ -1,21 +1,15 @@ -from PyQt5 import QtCore, QtGui, QtWidgets +from PyQt5 import QtCore, QtWidgets from PyQt5.QtCore import QSize, Qt from PyQt5.Qt import * -from PyQt5.QtGui import QPixmap, QIcon -from PyQt5.QtWidgets import QHBoxLayout, QAbstractItemView, QTableView, QVBoxLayout, QSplitter, \ - QApplication, QGroupBox, QLabel, QGridLayout, QLineEdit, QComboBox, QTextEdit, QCheckBox,QVBoxLayout,QListView, QMainWindow -from PyQt5.QtWidgets import QListWidget, QStackedWidget, QFrame -from PyQt5.QtWidgets import QListWidgetItem, QSizePolicy -from PyQt5.QtWidgets import QWidget, QSpacerItem, QHeaderView - +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QSplitter from .UserTable import UserTableView from utils.DBModels.UserModels import User -from .UserModel import UserTableModel from utils import Globals from model.UserModel.UserManage import UserManage -from Static import static + class UserWidgets(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/UI/VarManages/ModbusModel.py b/UI/VarManages/ModbusModel.py index 49ee30f..07df6f5 100644 --- a/UI/VarManages/ModbusModel.py +++ b/UI/VarManages/ModbusModel.py @@ -1,13 +1,13 @@ -from ast import mod + import typing import sys - -from matplotlib.widgets import EllipseSelector +from numpy import var 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, QStyleOptionViewItem +from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QMessageBox, QComboBox, QStyleOptionViewItem +from sympy import N from protocol.Celery.MBTCPMaster import app as MBTCPMApp @@ -381,21 +381,24 @@ class VarButtonDelegate(QItemDelegate): sender.oldName = model.datas[sender.index[0]][3] model.editableList.append(sender.index[0]) fucationCheckbox.setEnabled(True) + self.parent().viewport().update() else: varMes = model.datas[sender.index[0]] name, des, varType, slaveID, address, min, max, order = str(varMes[3]), str(varMes[4]), str(varMes[5]), str(varMes[6]), str(varMes[7]), str(varMes[8]), str(varMes[9]), str(varMes[-1]) # print(name, des, varType, slaveID, address, min, max, order) - if not name or not varType: + if varType == '': + varType = '0' + if not name: reply = QMessageBox.question(self.parent(), '警告', "有字段为空或输入错误", QMessageBox.Yes) return - - - if sender.oldName and Globals()[modbusType + 'Var'].getByName(sender.oldName): + + + if sender.oldName and ModbusVarManage.getByName(sender.oldName, modbusType): if sender.oldName == name or [varMes[3] for varMes in model.datas].count(name) < 2: ModbusVarManage.editVar(name = sender.oldName, Nname = name, des = des, varType = varType, slaveID = slaveID, address = address, @@ -422,13 +425,15 @@ class VarButtonDelegate(QItemDelegate): sender.isEdit = True fucationCheckbox.setEnabled(False) model.editableList.remove(sender.index[0]) + self.parent().viewport().update() def delete_action(self): sender = self.sender() model = self.parent().model name = str(model.datas[sender.index[0]][3]) - ModbusVarManage.deleteVar(name = name) + modbusType = self.parent().modbusType + ModbusVarManage.deleteVar(name = name, modbusType = modbusType) model.remove_row(sender.index[0]) def trend_action(self): diff --git a/UI/VarManages/VarTable.py b/UI/VarManages/VarTable.py index acb26af..b4f2478 100644 --- a/UI/VarManages/VarTable.py +++ b/UI/VarManages/VarTable.py @@ -1,14 +1,10 @@ -import typing -import qtawesome -from PyQt5 import QtGui,QtCore,QtWidgets -from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, QVariant, QSize -import sys -from PyQt5.QtWidgets import (QApplication, QHeaderView, QStyle, QStyleOptionButton, QTableView, QAbstractItemView) -from PyQt5.QtCore import (pyqtSignal, Qt, QAbstractTableModel, QModelIndex, QRect, QVariant) +from PyQt5 import QtCore +from PyQt5.QtWidgets import (QHeaderView, QStyle, QStyleOptionButton, QTableView, QAbstractItemView) +from PyQt5.QtCore import (pyqtSignal, Qt, QRect) -from PyQt5.QtWidgets import QItemDelegate, QHBoxLayout, QWidget, QTableView +from PyQt5.QtWidgets import QTableView from .ModbusModel import * from .AnalogModel import * @@ -18,7 +14,7 @@ from .TCRTDModel import * -from UI.VarManages.Thread import RTDTCThread, AnalogThread, FFSimulateThread, HartSimulateThread +from UI.VarManages.Thread import RTDTCThread, AnalogThread, HartSimulateThread from utils import Globals @@ -141,18 +137,6 @@ class AnalogTableView(VarTableView): self.setItemDelegateForColumn(8, AnalogButtonDelegate(self)) self.model = AnalogModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '工程量下限', '工程量上限', '操作'], [], table=self) -class FFSimulateTableView(VarTableView): - def __init__(self, parent=None): - super(FFSimulateTableView, self).__init__(parent) - self.valueList = [] - # self.realList = [0] * 8 + [0] * 8 + [0] * 8 - self.workThread = FFSimulateThread(self) - Globals.setValue('FFSimulateThread', self.workThread) - # print(self.workThread) - - def setHeader(self): - self.setItemDelegateForColumn(6, FFSimulateButtonDelegate(self)) - self.model = FFSimulateModel(['ID', '强制值', '当前值', '变量名', '变量描述', '变量类型', '操作'], [], table=self) class HartSimulateTableView(VarTableView): def __init__(self, parent=None): diff --git a/UI/VarManages/VarWidget.py b/UI/VarManages/VarWidget.py index 05acb61..75bad85 100644 --- a/UI/VarManages/VarWidget.py +++ b/UI/VarManages/VarWidget.py @@ -3,7 +3,7 @@ from PyQt5.QtCore import QSize, Qt, QTimer from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QSplitter, QPushButton, QFileDialog, QMessageBox -from UI.VarManages.VarTable import VarTableView, HartTableView, TcRtdTableView, AnalogTableView, FFSimulateTableView, \ +from UI.VarManages.VarTable import VarTableView, HartTableView, TcRtdTableView, AnalogTableView, \ HartSimulateTableView from UI.VarManages.MessageWidget import MessageWidget diff --git a/model/ProjectModel/VarManage.py b/model/ProjectModel/VarManage.py index 8caf925..b3dc100 100644 --- a/model/ProjectModel/VarManage.py +++ b/model/ProjectModel/VarManage.py @@ -1,6 +1,5 @@ import openpyxl -from pytz import NonExistentTimeError from utils.DBModels.ProtocolModel import ModbusTcpMasterVar, ModbusRtuMasterVar, ModbusRtuSlaveVar,\ ModbusTcpSlaveVar, HartVar, TcRtdVar, AnalogVar, FFSimulateVar, HartSimulateVar diff --git a/utils/DBModels/ProtocolModel.py b/utils/DBModels/ProtocolModel.py index a59f885..2ba9a79 100644 --- a/utils/DBModels/ProtocolModel.py +++ b/utils/DBModels/ProtocolModel.py @@ -1,5 +1,4 @@ import sys -import os import datetime from peewee import *