0518更新

main
ZHANGXUXU\95193 7 months ago
parent c4147590ac
commit ab959dcbab

@ -46,7 +46,7 @@ QPushButton#wirteDIDOforceBtn:hover{
}
QPushButton#forceBtn {
QPushButton#profibusForceBtn {
font-size: 22px;
@ -67,7 +67,7 @@ QPushButton#forceBtn {
}
QPushButton#forceBtn:hover{
QPushButton#profibusForceBtn:hover{
font: bold;

@ -57,7 +57,8 @@ background : #181922;
background-color: #000000;
}*/
QTabWidget#varManageTabWidget QTabBar::tab{
QTabBar#varManageTabBar::tab{
font-family: ".SFNSDisplay-Medium";
@ -66,8 +67,42 @@ QTabWidget#varManageTabWidget QTabBar::tab{
width: 160px;
height: 40px;
}
QTabBar#varManageTabBar::tab:hover{
background-color: #3787f7;
color: #000;
border: 2px solid #ccc;
/* font-weight: bold; */
padding-bottom: 7px;
}
QTabBar#varManageTabBar::tab:selected{
background-color: #3787f7;
color: #000;
border: 2px solid #ccc;
font-weight: bold;
}
QPushButton{
border: none;

@ -208,7 +208,7 @@ QDockWidget::title{
}
QPushButton#startProtocolBtn, QPushButton#switchBtn, QPushButton#switchTouchBtn, QPushButton#deviceParameterManageBtn{
QPushButton#profibusStartProtocolBtn, QPushButton#switchBtn, QPushButton#switchTouchBtn, QPushButton#deviceParameterManageBtn{
font-size: 25px;
@ -218,7 +218,7 @@ QPushButton#startProtocolBtn, QPushButton#switchBtn, QPushButton#switchTouchBtn,
}
QPushButton#startProtocolBtn:hover, QPushButton#switchBtn:hover, QPushButton#switchTouchBtn:hover,
QPushButton#profibusStartProtocolBtn:hover, QPushButton#switchBtn:hover, QPushButton#switchTouchBtn:hover,
QPushButton#deviceParameterManageBtn:hover{
font-size: 25px;
@ -233,7 +233,7 @@ QPushButton#deviceParameterManageBtn:hover{
}
QPushButton#startProtocolBtn:checked, QPushButton#switchBtn:checked, QPushButton#switchTouchBtn:checked,
QPushButton#profibusStartProtocolBtn:checked, QPushButton#switchBtn:checked, QPushButton#switchTouchBtn:checked,
QPushButton#deviceParameterManageBtn:checked{
font-size: 25px;
@ -296,6 +296,7 @@ QPushButton#closeButton, QPushButton#minButton, QPushButton#startActionBtn{
border: none;
}
QPushButton#confirmButton, QPushButton#exitButton{

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -1,7 +1,4 @@
import sys
import time
# sys.setrecursionlimit(10000)
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.Qt import *
@ -21,7 +18,7 @@ from ..Setting.Setting import SettingWidget
from model.ClientModel.Client import Client
from utils import Globals
from utils.DBModels.InitParameterDB import InitParameterDB
from UI.ProfibusWidgets.MainWindow import ProfibusWindow
from UI.ProfibusWidgets.ProfibusWindow import ProfibusWidgets
class CommonHelper:
def __init__(self):
@ -68,14 +65,6 @@ class MainWindow(QMainWindow):
# 解决报错
self.windowHandle().screenChanged.connect(self.__onScreenChanged)
# 窗体半透明模式
# QtWin.enableBlurBehindWindow(self)
# self.setWindowFlags(Qt.FramelessWindowHint |
# Qt.WindowMinMaxButtonsHint)
# self.windowEffect.addWindowAnimation(self.winId())
# self.windowEffect.setAcrylicEffect(self.winId())
# self.setStyleSheet("background:transparent")
def setupUi(self):
self.showMaximized()
@ -96,7 +85,7 @@ class MainWindow(QMainWindow):
modbusWidgetList = [self.ModbusTcpMasterWidget, self.ModbusTcpSlaveWidget, self.ModbusRtuMasterWidget, self.ModbusRtuSlaveWidget]
modbusNameList = ['MODBUSTCP主站', 'MODBUSTCP从站', 'MODBUSRTU主站', 'MODBUSRTU从站',]
self.profibusWidget = ProfibusWindow()
self.profibusWidget = ProfibusWidgets()
self.trendWidget = TrendWidgets()
self.SettingWidget = SettingWidget()
self.hartWidget = HartWidgets()
@ -113,6 +102,8 @@ class MainWindow(QMainWindow):
self.varManageTabWidget = QTabWidget()
self.varManageTabWidget.setObjectName("varManageTabWidget")
self.varManageTabWidget.tabBar().setObjectName('varManageTabBar')
self.rightWidget = QStackedWidget()
self.rightWidget.setObjectName("rightWidget")
self.rightWidget.addWidget(self.projectWidget)
@ -171,9 +162,6 @@ class MainWindow(QMainWindow):
return -1
self.rightWidget.setCurrentIndex(index)
# if index in [4, 5]:
# return
# Globals.setValue('SearchWidget', index)
def showSetting(self):
proType = Globals.getValue('currentProType')
@ -182,40 +170,15 @@ class MainWindow(QMainWindow):
return
self.SettingWidget.setupUI()
self.rightWidget.setCurrentIndex(4)
# elif proType in ['0', '1']:
# if self.exButtonClicked(4) != -1:
# self.SettingWidget.setupUI()
# elif proType in ['2', '3']:
# if self.exButtonClicked(5) != -1:
# self.RtuSettingWidget.setupUI()
def varShow(self):
proType = Globals.getValue('currentProType')
if proType == -1:
return
# elif proType in ['0', '1', '2', '3']:
self.exButtonClicked(1)
Globals.setValue('SearchWidget', 1)
# elif proType in ['4']:
# self.exButtonClicked(6)
# Globals.setValue('SearchWidget', 6)
# elif proType in ['5']:
# self.exButtonClicked(7)
# Globals.setValue('SearchWidget', 7)
# elif proType in ['6']:
# self.exButtonClicked(8)
# Globals.setValue('SearchWidget', 8)
# elif proType in ['7']:
# self.exButtonClicked(9)
# self.ffWidget.initDevView()
# Globals.setValue('SearchWidget', 9)
# elif proType in ['8']:
# self.exButtonClicked(10)
# Globals.setValue('SearchWidget', 10)
# elif proType in ['9']:
# self.exButtonClicked(11)
# Globals.setValue('SearchWidget', 11)
#枚举参数
def reFreshTrendWidget(self):
proType = Globals.getValue('currentProType')

@ -163,42 +163,34 @@ class AreaWidget(QWidget):
self.dataTypeLabel = QLabel('数据类型:')
self.dataTypeLabel.setObjectName('dataTypeLabel')
# self.dataTypeLabel.setFixedSize(90, 27)
self.dataTypeCombox = QComboBox()
self.dataTypeCombox.addItems(['AI', 'AO', 'DI', 'DO'])
self.dataTypeCombox.setObjectName('dataTypeCombox')
self.dataTypeCombox.currentIndexChanged.connect(self.setByteLineEditValue)
# self.dataTypeCombox.setFixedSize(90, 27)
self.dataOrderLabel = QLabel('数据格式:')
self.dataOrderLabel.setObjectName('dataOrderLabel')
# self.dataOrderLabel.setFixedSize(90, 27)
self.orderCombox = QComboBox()
self.orderCombox.addItems(['不转换', '字节转换', '字转换', '字内转换'])
self.orderCombox.setObjectName('orderCombox')
self.orderCombox.setCurrentIndex(1)
# self.orderCombox.setFixedSize(90, 27)
self.byteLineLabel = QLabel('字节长度:')
self.byteLineLabel.setObjectName('byteLineLabel')
# self.byteLineLabel.setFixedSize(90, 27)
self.byteLineEdit = SoftKeyBoardEdit()
self.byteLineEdit.setPlaceholderText('字节长度')
self.byteLineEdit.setObjectName('byteLineEdit')
# self.byteLineEdit.setFixedSize(90, 27)
self.okBtn = QPushButton('保存')
# self.okBtn.setFixedSize(90, 27)
self.okBtn.setObjectName('okBtn')
self.okBtn.setIcon(qtawesome.icon('fa.pencil', color='#4c8cf2'))
# self.okBtn.setIcon(QIcon(':/static/delete.png'))
self.okBtn.clicked.connect(self.addAreaWidget)
self.okBtnValue = True
self.delAreaBtn = QPushButton('删除')
self.delAreaBtn.setIcon(QIcon(':/static/delete.png'))
self.delAreaBtn.setObjectName('delAreaBtn')
# self.delAreaBtn.setFixedSize(90, 27)
self.delAreaBtn.clicked.connect(self.removeAreaTab)
hLayout = QHBoxLayout()
@ -208,11 +200,6 @@ class AreaWidget(QWidget):
hLayout.addWidget(self.delAreaBtn)
hLayout.addWidget(QSplitter())
# vlayout = QVBoxLayout()
# vlayout.addWidget(self.pvUpperLimit)
# vlayout.addWidget(self.pvLowerLimit)
# vlayout.addWidget(self.pvUnit)
self.leftLayout.addWidget(self.pvUpperLimit, 0, 0, 1, 2)
self.leftLayout.addWidget(self.pvLowerLimit, 1, 0, 1, 2)
self.leftLayout.addWidget(self.pvUnit,2, 0, 1, 2)
@ -226,7 +213,6 @@ class AreaWidget(QWidget):
self.leftLayout.addWidget(QSplitter(),6, 0, 2, 2)
self.leftLayout.addLayout(hLayout, 7, 0, 2, 2)
self.leftLayout.setContentsMargins(10, 10, 0, 20)
# self.leftLayout.addWidget(self.delAreaBtn, 3, 1, 1, 1)
@ -240,12 +226,8 @@ class AreaWidget(QWidget):
self.mainLayout.addLayout(self.rightLayout, 20)
self.mainLayout.setSpacing(10)
# self.deviceWidgetManage.addArea(mainLayout=mainLayout, leftLayoutWidget=leftLayoutWidgets)
self.setLayout(self.mainLayout)
if self.settingValue is not None:
self.addAreaWidget()
@ -289,12 +271,6 @@ class AreaWidget(QWidget):
self.areaTabWidget.setTabText(index, '通道{}'.format(index+1))
def addAreaWidget(self):
curIndex = self.areaTabWidget.currentIndex()
#获取左侧配置布局的参数
@ -320,7 +296,6 @@ class AreaWidget(QWidget):
order = self.dataTypeTranslate(self.orderCombox.currentText())
byteLineEdit = self.byteLineEdit.text()
#判断字节长度的输入是否是数字
pattern = re.compile(r'^[1-7]$')
match = pattern.match(byteLineEdit)
@ -361,11 +336,7 @@ class AreaWidget(QWidget):
self.rightAreaWidgets = RightAreaWidgets(self, order = order, byteLineEdit = byteLineEdit, dataType = dataType, deviceName = deviceName)
areaLayout.addWidget(self.rightAreaWidgets)
self.state = False
self.rightAreaWidgetState = True
areaId = DevicesManange.getAreaID(deviceName)
@ -374,16 +345,13 @@ class AreaWidget(QWidget):
self.devicesManange.recalculateAddress()
return
elif areaId is not None and curIndex in areaId:
# print(areaId,curIndex,2222)
DevicesManange.updataAreas(dataType, order, byteLineEdit, deviceName, curIndex)
# print(deviceName, curIndex, dataType, int(byteLineEdit))
self.isRead = self.devicesManange.getDevice(deviceName).editArea(index = curIndex, type = dataType, order = order, bytes = int(byteLineEdit))
# self.readVarTimer.start(500)
else:
DevicesManange.addAreas(dataType, order, byteLineEdit, deviceName)
self.isRead = self.devicesManange.getDevice(deviceName).addArea(type = dataType, bytes = int(byteLineEdit), order = order, nums = 1)
self.devicesManange.recalculateAddress()
# self.readVarTimer.start(500)

@ -3,19 +3,16 @@
import sys
import re
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QSize, Qt
from PyQt5.QtCore import Qt
from PyQt5.Qt import *
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtWidgets import QHBoxLayout, QAbstractItemView, QVBoxLayout, QSplitter, \
QApplication, QLabel, QGridLayout, QComboBox, QTextEdit, QCheckBox,QVBoxLayout,QListView, QMainWindow, QStackedWidget, QMessageBox
from PyQt5.QtWidgets import QSizePolicy, QWidget
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QSplitter, \
QApplication, QPushButton, QVBoxLayout,QMessageBox
from PyQt5.QtWidgets import QWidget
from ctypes import POINTER, cast
from ctypes.wintypes import MSG
from PyQt5.QtWinExtras import QtWin
from win32 import win32api, win32gui
from win32.lib import win32con
from windoweffect.window_effect import WindowEffect

@ -204,6 +204,7 @@ class DeviceTab(QTabWidget):
self.devicesManange = devicesManange
self.setObjectName('deviceWidget')
Globals.setValue(self.dockWidget.windowTitle(), self)
self.tabCloseRequested.connect(self.closeTab)
@ -225,7 +226,7 @@ class DeviceTab(QTabWidget):
self.setCornerWidget(self.addDeviceButton)
self.setTabsClosable(True)
self.tabCloseRequested.connect(self.closeTab)
self.state = True
# Globals.setValue('DeviceTable', self)
self.initWidget()
@ -237,7 +238,7 @@ class DeviceTab(QTabWidget):
if reply == QMessageBox.Yes:
if index != -1:
deviceName = self.tabText(index) + self.dockWidget.windowTitle()
# print(deviceName,index,222)
print(deviceName,index,222)
self.removeTab(index)
self.devicesManange.delDevice(deviceName = deviceName )
DeviceDB.deleteDevice(deviceName = deviceName)
@ -273,23 +274,17 @@ class DeviceTab(QTabWidget):
def initWidget(self):
alldevices = DevicesManange.getAllDevice()
# alldevices = False
# print(alldevices, 1111)
print(alldevices)
titleName = self.dockWidget.windowTitle()
if alldevices:
for devices in alldevices:
deviceName = devices[0]
if titleName in deviceName:
# print(devices,333)
self.devicesManange.addDevice(proType = devices[1], masterSlaveModel = devices[2], deviceName = devices[0])
self.addDeviceWidget(deviceName=deviceName)
self.state = False
else:
if self.state:
self.creatInitWidget()
# if self.state:
# self.creatInitWidget()
def creatInitWidget(self):
widget = QWidget()
@ -310,6 +305,7 @@ class DeviceTab(QTabWidget):
self.tabBar().setHidden(True)
def switchProject(self):
self.clear()
self.initUI()

@ -3,19 +3,16 @@
import sys
import re
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QSize, Qt
from PyQt5.QtCore import Qt
from PyQt5.Qt import *
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtWidgets import QHBoxLayout, QAbstractItemView, QVBoxLayout, QSplitter, \
QApplication, QLabel, QGridLayout, QLineEdit, QComboBox, QTextEdit, QCheckBox,QVBoxLayout,QListView, QMainWindow, QStackedWidget, QMessageBox
from PyQt5.QtWidgets import QSizePolicy, QWidget
from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QVBoxLayout, QSplitter, \
QApplication, QComboBox, QVBoxLayout, QMessageBox
from PyQt5.QtWidgets import QWidget
from ctypes import POINTER, cast
from ctypes.wintypes import MSG
from PyQt5.QtWinExtras import QtWin
from win32 import win32api, win32gui
from win32.lib import win32con
from windoweffect.window_effect import WindowEffect
@ -47,21 +44,6 @@ class EditAddressWidget(QDialog):
self.oldAddressEdit.setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
self.oldAddressEdit.setObjectName('deviceMesEdit')
# self.oldAddressLabel = QLabel(' 请输入原站地址: ' + str(self.address))
# self.oldAddressLabel.setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
# self.oldAddressLabel.setObjectName('oldAddressLabel')
# self.pvLowerEdit = QLineEdit()
# self.pvLowerEdit.setPlaceholderText("量程下限")
# self.pvLowerEdit.setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
# self.pvLowerEdit.setObjectName('deviceMesEdit')
# self.pvUnitEdit = QLineEdit()
# self.pvUnitEdit.setPlaceholderText("单位")
# self.pvUnitEdit.setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
# self.pvUnitEdit.setObjectName('deviceMesEdit')
self.confirmButton = QPushButton('确定')
self.confirmButton.setObjectName('confirmButton')
@ -93,14 +75,10 @@ class EditAddressWidget(QDialog):
self.conVerLayout.addWidget(self.newAddressEdit, 2)
self.conVerLayout.addWidget(self.deviceTypeCombox, 2)
# self.conVerLayout.addWidget(self.pvLowerEdit, 1)
# self.conVerLayout.addWidget(self.pvUnitEdit, 1)
# self.conVerLayout.addWidget(QSplitter(), 1)
self.conVerLayout.addLayout(self.horizontalLayout, 2)
self.conVerLayout.setSpacing(32)
self.conVerLayout.setContentsMargins(34, 26, 34, 50)
# self.verticalLayout.addWidget(self.picLabel)
self.verticalLayout.addLayout(self.conVerLayout)
self.verticalLayout.setSpacing(10)

@ -69,7 +69,7 @@ def getHwndByPid(pid):
class ProfibusWindow(QWidget):
class ProfibusWidgets(QWidget):
def __init__(self):
super().__init__()
InitParameterDB()
@ -101,10 +101,10 @@ class ProfibusWindow(QWidget):
toolbarLayout = QHBoxLayout()
self.startProtocolBtn = QPushButton()
self.startProtocolBtn.setObjectName("startProtocolBtn")
self.startProtocolBtn.setObjectName("profibusStartProtocolBtn")
# self.startProtocolBtn.setIcon(QIcon(':/static/startProtocol.png'))
self.startProtocolBtn.setText('开始通讯')
self.startProtocolBtn.setIcon(QIcon(':/static/start.png'))
self.startProtocolBtn.setIcon(QIcon('Static/start_green.png'))
self.startProtocolBtn.setIconSize(QSize(23, 23))
self.startProtocolBtn.setCheckable(True)
self.startProtocolBtn.clicked.connect(self.startProtocol)
@ -149,17 +149,17 @@ class ProfibusWindow(QWidget):
# 创建按钮
self.minimizeButton = QPushButton(QIcon(':/static/min.png'), "")
self.minimizeButton.setObjectName('minButton')
self.closeButton = QPushButton(QIcon(':/static/close.png'), "")
self.closeButton.setObjectName('closeButton')
# 按钮点击事件连接
self.minimizeButton.clicked.connect(self.showMinimized)
self.closeButton.clicked.connect(self.close)
hLayout = QHBoxLayout()
hLayout.addWidget(self.minimizeButton)
hLayout.addWidget(self.closeButton)
# self.minimizeButton = QPushButton(QIcon(':/static/min.png'), "")
# self.minimizeButton.setObjectName('minButton')
# self.closeButton = QPushButton(QIcon(':/static/close.png'), "")
# self.closeButton.setObjectName('closeButton')
# # 按钮点击事件连接
# self.minimizeButton.clicked.connect(self.showMinimized)
# self.closeButton.clicked.connect(self.close)
# hLayout = QHBoxLayout()
# hLayout.addWidget(self.minimizeButton)
# hLayout.addWidget(self.closeButton)
iconLabel = QLabel()
pix = QPixmap('static/Hicent.png')
@ -181,7 +181,7 @@ class ProfibusWindow(QWidget):
toolbarLayout.addWidget(self.batteryProBar, 1)
toolbarLayout.addWidget(self.batteryStateLabel, 1)
toolbarLayout.addWidget(QWidget(), 1)
toolbarLayout.addLayout(hLayout, 1)
# toolbarLayout.addLayout(hLayout, 1)
toolbarLayout.setSpacing(20)
toolbarLayout.setContentsMargins(0, 0, 0, 0)

@ -14,7 +14,7 @@ class ForceButton(QPushButton):
self.qualityValueLabel = qualityValueLabel
self.qualityLineEdit = qualityLineEdit
self.number = number
self.setObjectName('forceBtn')
self.setObjectName('profibusForceBtn')
self.setText(btnName)
class ForceRadioButton(QRadioButton):

@ -11,7 +11,9 @@ import sys
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setStyle(QStyleFactory.create('Fusion'))
app.setStyleSheet(CommonHelper.readQss('static/main.qss')+ CommonHelper.readQss('static/profibus.qss'))
app.setStyleSheet(CommonHelper.readQss('static/main.qss')
+ CommonHelper.readQss('static/profibus.qss')
+ CommonHelper.readQss('static/Area.qss'))
reg = Register()
if not reg.checkLicense():
regWidget = RegisterWidget()

Loading…
Cancel
Save