from PyQt5.QtCore import (QCoreApplication, Qt) from PyQt5.QtWidgets import (QGridLayout, QLabel, QLineEdit, QGroupBox, QVBoxLayout, QPushButton, QSizePolicy, QSpacerItem, QWidget, QComboBox, QMessageBox, QSplitter, QListView) from UI.Setting.TCPSetting import TCPSettingWidget from UI.Setting.RTUSetting import RTUSettingWidget from UI.Setting.DeviceSearchSetting import DeviceSearchSettingWidget class SettingWidget(QWidget): def __init__(self): super().__init__() def setupUI(self): self.modbusSettingLayout = QGridLayout() # 初始化部件 self.tcpMasterSettingWidget = TCPSettingWidget('master') self.tcpSlaveSettingWidget = TCPSettingWidget('slave') self.rtuMasterSettingWidget = RTUSettingWidget('master') self.rtuSlaveSettingWidget = RTUSettingWidget('slave') self.deviceSearchSettingWidget = DeviceSearchSettingWidget() self.tcpMasterSettingWidget.setupUI() self.tcpSlaveSettingWidget.setupUI() self.rtuMasterSettingWidget.setupUI() self.rtuSlaveSettingWidget.setupUI() # 分组布局 self.tcpGroup = QGroupBox() self.tcpLayout = QVBoxLayout() self.tcpMasterLable = QLabel('MODBUSTCP主站设置') self.tcpMasterLable.setObjectName('tcpLable') self.tcpSlaveLable = QLabel('MODBUSTCP从站站设置') self.tcpSlaveLable.setObjectName('tcpLable') self.tcpLayout.addWidget(self.tcpMasterLable) self.tcpLayout.addWidget(self.tcpMasterSettingWidget) self.tcpLayout.addWidget(self.tcpSlaveLable) self.tcpLayout.addWidget(self.tcpSlaveSettingWidget) self.tcpGroup.setLayout(self.tcpLayout) self.rtuGroup = QGroupBox() self.rtuLayout = QVBoxLayout() self.rtuMasterLable = QLabel('MODBUSRTU主站设置') self.rtuMasterLable.setObjectName('rtuLable') self.rtuSlaveLable = QLabel('MODBUSRTU从站站设置') self.rtuSlaveLable.setObjectName('rtuLable') self.rtuLayout.addWidget(self.rtuMasterLable) self.rtuLayout.addWidget(self.rtuMasterSettingWidget) self.rtuLayout.addWidget(self.rtuSlaveLable) self.rtuLayout.addWidget(self.rtuSlaveSettingWidget) self.rtuGroup.setLayout(self.rtuLayout) # 添加到主布局 self.modbusSettingLayout.addWidget(self.tcpGroup, 0, 0) self.modbusSettingLayout.addWidget(self.rtuGroup, 0, 1) self.modbusSettingLayout.addWidget(self.deviceSearchSettingWidget, 0, 2) # 调整布局样式 self.modbusSettingLayout.setContentsMargins(10, 10, 10, 10) self.modbusSettingLayout.setSpacing(15) self.setLayout(self.modbusSettingLayout)