赞
踩
废话不多说,直接上源码
""" # -*- coding:utf-8 -*- @Project : Mitsubishi @File : Main_Run.pyw @Author : Administrator @Time : 2024/05/09 下午 04:10 @Description : PyQt5界面主逻辑 @Software:PyCharm """ import sys from PyQt5 import QtWidgets, QtCore from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox from MainUI import Ui_MainWindow import qtawesome as qta import serial.tools.list_ports import Mitsubishi_API class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(QMainWindow, self).__init__(parent) self.setupUi(self) self.label_onOff.setHidden(True) self.comboBox_onOff.setHidden(True) self.comboBox_mode.currentIndexChanged.connect(self.changeMode) self.refreshSerialPorts() self.pushButton_refresh.clicked.connect(self.refreshSerialPorts) self.pushButton_execute.clicked.connect(self.execute) self.pushButton_refresh.setIcon(qta.icon("ei.refresh")) self.pushButton_execute.setIcon(qta.icon("ei.hand-up")) def changeMode(self): """ 切换模式 :return: """ if self.comboBox_mode.currentText() == "读取": self.label_number.setHidden(False) self.comboBox_number.setHidden(False) self.label_onOff.setHidden(True) self.comboBox_onOff.setHidden(True) else: self.label_number.setHidden(True) self.comboBox_number.setHidden(True) self.label_onOff.setHidden(False) self.comboBox_onOff.setHidden(False) def refreshSerialPorts(self): """ 绑定串口列表至控件 :return: """ # 清除当前下拉列表中的项目 self.comboBox_serialPort.clear() # 获取可用串口列表 ports = serial.tools.list_ports.comports() # 将串口名称添加到下拉列表中 for port in ports: self.comboBox_serialPort.addItem(port.device) def execute(self): """ 执行操作 :return: """ serial_port = self.comboBox_serialPort.currentText() # 串口 mode = self.comboBox_mode.currentText() # 模式 soft = self.comboBox_soft.currentText() # 输入输出 soft_num = self.lineEdit_soft_num.text() # 软元件数值 if soft_num: softComponent = soft + soft_num.strip() if mode == "读取": read_num = self.comboBox_number.currentText() recv = Mitsubishi_API.PLC_Read(serial_port, softComponent, read_num) self.textBrowser.append("<span style='color:#00FFA9'>读取PLC返回值:{}</span>".format(recv)) else: onOff = self.comboBox_onOff.currentText() Mitsubishi_API.PLC_FORCE(serial_port, softComponent, onOff) self.textBrowser.append("<span style='color:#4848E9'>写入PLC命令完毕!</span>") else: QMessageBox.warning(self, '警告', '请填写完整软元件!', QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) if __name__ == '__main__': QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) app = QtWidgets.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。