PyQt5综合demo(QSerialPort QThread QWidget)

# !usr/bin/env python
# -*- coding:utf-8 -*-
import time, csv, sys
from PyQt5 import QtWidgets
from fluke8845A import Ui_MainWindow
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
from PyQt5.QtCore import QThread, pyqtSignal, QObject, QMutex
from PyQt5.QtWidgets import QMessageBox, QLCDNumber, QButtonGroup

# 全局变量
uart_name_list= list()
count = int(0)
uart_desc_list = list()

num_A = str(0)
num_B = str(0)

f = int(0)

mode = int(0)
cb_adc_mode = int(0)
cb_meter_mode = int(0)
lock1 = QMutex()
lock2 = QMutex()

data_dic = {
    
    'btn_count': 0, 'min_data': 0.0, 'max_data': 0.0,
			'volt_step': 0, 'time_dura': 0, 'dac_num': 0.0,
			'fp': 0, 'lcc1_num': 0, 'lcc1_flag': 1,
			'test_count': 0, 'adc': 0, 'meter': 0, 'fluke_num': 0,
			'channel': 0, 'read_count': 0}

# lcc1类
class write_work(QObject):
	lcc1_fluke_write = pyqtSignal()
	def __init__(self):
		super(write_work, self).__init__()
		self.run = True
		self.write_delay = 0.4

	def work(self):
		global data_dic
		while self.run:
			lock2.lock()
			self.lcc1_fluke_write.emit()
			time.sleep(float(self.write_delay))
			lock1.unlock()


# fluke8845A类
class read_work(QObject):
	lcc1_fluke_read = pyqtSignal()
	def __init__(self):
		super(read_work, self).__init__()
		self.run = True
		self.read_delay = 0.4

	def work(self):
		global data_dic
		while self.run:
			lock1.lock()
			self.lcc1_fluke_read.emit()
			time.sleep(float(self.read_delay))
			lock2.unlock()

# 主界面
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
	def __init__(self, parent = None):
		super(MainWindow, self).__init__(parent)
		self.setupUi(self)
		self.tab_uart()
		self.volt_display()
		self.my_write_thread = QThread()
		self.my_write_work = write_work()
		self.my_read_thread = QThread()
		self.my_read_work = read_work()
		self.four_checkbox_init()
		self.select_adc_meter()
		self.setSignalSlot()

	# 串口初始化
	def uart_init(self):
		global uart_name_list, uart_desc_list, count
		self.com1 = QSerialPort()
		self.com2 = QSerialPort()
		port_numb = QSerialPortInfo.availablePorts()
		for info in port_numb:
			if info.portName().count('COM', 0, len(info.portName())) != 0:
				uart_str_desc = info.description().split()
				# print("uart_str_desc= %s" % uart_str_desc)
				uart_str_name = info.portName().split()
				uart_name_list.append(uart_str_name[0])
				uart_desc_list.append(uart_str_desc[0])
				# print("uart_desc_list= %s" % uart_desc_list)
		else:
			# print("uart_desc_list = %s" % uart_desc_list)
			# print("uart_name_list = %s" % uart_name_list)
			count = str(uart_name_list).count('COM', 0, len(str(uart_name_list)))
			# print("count= %s" % count)
			if count > 256:
				QMessageBox.critical(self, '错误', '连接串口太多')
			else:
				self.fluke_com.clear()
				self.Lcc1_com.clear()
				for i in range(0, count):
					self.fluke_com.addItem(uart_name_list[i] + ' ' + uart_desc_list[i])
					self.Lcc1_com.addItem(uart_name_list[i] + ' ' + uart_desc_list[i])

	# 信号与槽
	def setSignalSlot(self):
		# 手动测试按键
		self.fluke_btn_open.clicked.connect(self.fluke_open_port)
		self.fluke_btn_close.clicked.connect(self.fluke_close_port)
		self.Lcc1_btn_open.clicked.connect(self.lcc1_open_port)
		self.Lcc1_btn_close.clicked.connect(self.lcc1_close_port)

		self.btn_dac_output.clicked.connect(self.transmit_A_volt)
		self.btn_dac_output.clicked.connect(self.meas_fluke_volt)

		self.btn_dac_output_2.clicked.connect(self.transmit_B_volt)
		self.btn_dac_output_2.clicked.connect(self.meas_fluke_volt)

		self.btn_dac_inc.clicked.connect(self.btn_A_inc)
		self.btn_dac_inc.clicked.connect(self.meas_fluke_volt)

		self.btn_dac_dec.clicked.connect(self.btn_A_dec)
		self.btn_dac_dec.clicked.connect(self.meas_fluke_volt)

		self.btn_dac_inc_2.clicked.connect(self.btn_B_inc)
		self.btn_dac_inc_2.clicked.connect(self.meas_fluke_volt)

		self.btn_dac_dec_2.clicked.connect(self.btn_B_dec)
		self.btn_dac_dec_2.clicked.connect(self.meas_fluke_volt)

		# 自动化测试按键
		self.btn_autotest_start.clicked.connect(self.autotest_start)

		# 自动化测试读写信号
		self.my_write_work.lcc1_fluke_write.connect(self.lcc1_fluke_write)
		self.my_read_work.lcc1_fluke_read.connect(self.lcc1_fluke_read)
		# 自动化thread
		self.my_write_work.moveToThread(self.my_write_thread)
		self.my_read_work.moveToThread(self.my_read_thread)
		self.my_write_thread.started.connect(self.my_write_work.work)
		self.my_read_thread.started.connect(self.my_read_work.work)
		# 关闭文件
		self.btn_autotest_stop.clicked.connect(self.stop_autotest)

	# fluke串口打开
	def fluke_open_port(self):
		global uart_desc_list, uart_name_list, count
		for i in range(0, count):
			if (uart_name_list[i] + ' ' + uart_desc_list[i]) == self.fluke_com.currentText():
				self.com1.setPortName(uart_name_list[i])
		self.com1.setBaudRate(QSerialPort.Baud115200)
		self.com1.setDataBits(QSerialPort.Data8)
		self.com1.setStopBits(QSerialPort.OneStop)
		self.com1.setParity(QSerialPort.NoParity)
		self.com1.open(QSerialPort.ReadWrite)
		if self.com1.isOpen():
			self.fluke_link_status.setText("已连接")
		else:
			QMessageBox.critical(self, '错误', '串口打开失败')
		tx_data = "SYST:REM\r"
		self.com1.write(tx_data.encode('ascii'))

	# fluke串口关闭
	def fluke_close_port(self):
		tx_data = "SYST:LOC\r"
		self.com1.write(tx_data.encode('ascii'))
		self.com1.close()
		self.fluke_link_status.setText("未连接")

	# lcc1串口打开
	def lcc1_open_port(self):
		global uart_desc_list, uart_name_list, count
		for i in range(0, count):
			if (uart_name_list[i] + ' ' + uart_desc_list[i]) == self.Lcc1_com.currentText():
				self.com2.setPortName(uart_name_list[i])
		self.com2.setBaudRate(QSerialPort.Baud115200)
		self.com2.setDataBits(QSerialPort.Data8)
		self.com2.setStopBits(QSerialPort.OneStop)
		self.com2.setParity(QSerialPort.NoParity)
		self.com2.open(QSerialPort.ReadWrite)
		if self.com2.isOpen():
			self.Lcc1_link_status.setText("已连接")
		else:
			QMessageBox.critical(self, '错误', '串口打开失败')

	# lcc1串口关闭
	def lcc1_close_port(self):
		self.com2.close()
		self.Lcc1_link_status.setText("未连接")

	# QTabWidget设置名称并初始化串口
	def tab_uart(self):
		self.tabWidget.setTabText(0, "Fluke")
		self.tabWidget.setTabText(1, "LCC1")
		self.uart_init()

	# A通道DAC值写入LCC1
	def transmit_A_volt(self):
		global num_A
		num_A = self.le_dac_A_Input.text()
		if len(num_A) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			tx_data_A = 'SCA 1 %s\r' % num_A
			print(tx_data_A)
			self.com2.write(tx_data_A.encode('ascii'))

	def btn_A_inc(self):
		global num_A
		num = self.le_dac_A_Input.text()
		if len(num) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			int_num = int(num)
			int_num += 1
			self.le_dac_A_Input.setText(str(int_num))
			self.transmit_A_volt()

	def btn_A_dec(self):
		global num_A
		num = self.le_dac_A_Input.text()
		if len(num) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			int_num = int(num)
			int_num -= 1
			self.le_dac_A_Input.setText(str(int_num))
			self.transmit_A_volt()

	# B通道DAC值写入LCC1
	def transmit_B_volt(self):
		global num_B
		num_B = self.le_dac_B_Input.text()
		if len(num_B) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			tx_data_B = 'SCA 2 %s\r' % num_B
			self.com2.write(tx_data_B.encode('ascii'))

	def btn_B_inc(self):
		global num_B
		num = self.le_dac_B_Input.text()
		if len(num) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			int_num = int(num)
			int_num += 1
			self.le_dac_B_Input.setText(str(int_num))
			self.transmit_B_volt()

	def btn_B_dec(self):
		global num_B
		num = self.le_dac_B_Input.text()
		if len(num) == 0:
			QMessageBox.critical(self, '错误', '电压值不能为空')
		else:
			int_num = int(num)
			int_num -= 1
			self.le_dac_B_Input.setText(str(int_num))
			self.transmit_B_volt()

	# 读取LCC1返回的ADC电压值
	def receive_adc_volt(self):
		global data_dic
		rx_data = self.com2.readAll()
		if len(rx_data) == 0:
			print("no message\r\n")
		else:
			data = (float(rx_data) * 1000.0)
			self.adc_volt_show.display(data)

	# LCD初始化
	def volt_display(self):
		self.adc_volt_show.setDigitCount(8)
		self.adc_volt_show.setMode(QLCDNumber.Dec)
		self.adc_volt_show.setSegmentStyle(QLCDNumber.Flat)

		self.meter_volt_show.setDigitCount(8)
		self.meter_volt_show.setMode(QLCDNumber.Dec)
		self.meter_volt_show.setSegmentStyle(QLCDNumber.Flat)

		self.dac_volt_display.setDigitCount(8)
		self.dac_volt_display.setMode(QLCDNumber.Dec)
		self.dac_volt_display.setSegmentStyle(QLCDNumber.Flat)

		self.meter_volt_display.setDigitCount(8)
		self.meter_volt_display.setMode(QLCDNumber.Dec)
		self.meter_volt_display.setSegmentStyle(QLCDNumber.Flat)

		self.adc_volt_display.setDigitCount(8)
		self.adc_volt_display.setMode(QLCDNumber.Dec)
		self.adc_volt_display.setSegmentStyle(QLCDNumber.Flat)


	# checkbox初始化
	def four_checkbox_init(self):
		mode_cb_group = QButtonGroup()		# 创建一个实例
		channel_cb_group = QButtonGroup()
		self.cb_auto.setCheckable(True)		# 设置可以选择
		self.cb_manul.setCheckable(True)
		mode_cb_group.addButton(self.cb_manul, 0)  # 添加
		mode_cb_group.addButton(self.cb_auto, 1)
		mode_cb_group.setExclusive(True)  # 设置互斥属性
		channel_cb_group.addButton(self.cb_channel_A, 0)
		channel_cb_group.addButton(self.cb_channel_B, 1)
		channel_cb_group.setExclusive(True)
		self.cb_manul.clicked.connect(self.set_manul_mode)
		self.cb_auto.clicked.connect(self.set_auto_mode)
		self.cb_channel_A.clicked.connect(self.set_channel_A)
		self.cb_channel_B.clicked.connect(self.set_channel_B)

	# 设置手动测量模式
	def set_manul_mode(self):
		global mode
		if self.cb_manul.isChecked():
			mode = int(1)
			self.cb_manul.setChecked(True)
			self.cb_auto.setChecked(False)
			print("mode = %d" % mode)
			# 串口自动回读
			self.com1.readyRead.connect(self.receive_fluke_volt)
			self.com2.readyRead.connect(self.receive_adc_volt)

	# 设置自动测量模式
	def set_auto_mode(self):
		global mode
		if self.cb_auto.isChecked():
			mode = int(2)
			self.cb_manul.setChecked(False)
			self.cb_auto.setChecked(True)
			print("mode = %d" % mode)

	# 选择通道A
	def set_channel_A(self):
		global data_dic
		data_dic['channel'] = int(1)
		self.cb_channel_A.setChecked(True)
		self.cb_channel_B.setChecked(False)

	# 选择通道B
	def set_channel_B(self):
		global data_dic
		data_dic['channel'] = int(2)
		self.cb_channel_A.setChecked(False)
		self.cb_channel_B.setChecked(True)

	def select_adc_meter(self):
		mode_cb_group = QButtonGroup()		# 创建一个实例
		self.cb_adc.setCheckable(True)		# 设置可以选择
		self.cb_meter.setCheckable(True)
		mode_cb_group.addButton(self.cb_adc, 0)  # 添加
		mode_cb_group.addButton(self.cb_meter, 1)
		mode_cb_group.setExclusive(False)  # 设置互斥属性
		self.cb_adc.clicked.connect(self.set_adc_mode)
		self.cb_meter.clicked.connect(self.set_meter_mode)

	def set_adc_mode(self):
		global cb_adc_mode
		if self.cb_adc.isChecked():
			cb_adc_mode = int(1)
		else:
			cb_adc_mode = int(0)
		print("cb_adc = %d" % cb_adc_mode)

	def set_meter_mode(self):
		global cb_meter_mode
		if self.cb_meter.isChecked():
			cb_meter_mode = int(1)
		else:
			cb_meter_mode = int(0)
		print("cb_meter = %d" % cb_meter_mode)

	# 发送测量命令给fluke仪表
	def meas_fluke_volt(self):
		tx_data = "MEAS:VOLT:DC? 35\r"
		self.com1.write(tx_data.encode())

	# 从fluke仪表接收测量电压值
	def receive_fluke_volt(self):
		rx_data = self.com1.readAll()
		if len(rx_data) < 15:
			self.com1.clear()
		else:
			data = (float(rx_data) * 1000.0)
			self.meter_volt_show.display(data)
			return data

	def lcc1_fluke_write(self):
		global data_dic, f, cb_meter_mode, cb_adc_mode
		if data_dic['lcc1_flag'] == 1:
			data_dic['min_data'] = self.le_voltmin_input.text()
			data_dic['max_data'] = self.le_voltmax_input.text()
			data_dic['volt_step'] = self.LE_VoltageStepLen.text()

			data_dic['min_data'] = float(data_dic['min_data'])
			data_dic['min_data'] = data_dic['min_data'] * 1000.0
			data_dic['max_data'] = float(data_dic['max_data'])
			data_dic['max_data'] = data_dic['max_data'] * 1000.0

			result = data_dic['max_data'] - data_dic['min_data']
			data_dic['volt_step'] = float(data_dic['volt_step'])
			data_dic['test_count'] = int(result / data_dic['volt_step'])
			data_dic['lcc1_num'] = int(0)
			data_dic['lcc1_flag'] += 1
			
		if data_dic['lcc1_num'] <= data_dic['test_count']:
			tx_data_com1 = "MEAS:VOLT:DC? 35\r"
			data_dic['dac_num'] = int(data_dic['min_data'] + (data_dic['lcc1_num'] * data_dic['volt_step']))
			tx_data_com2 = 'SCA {0} {1}\r'.format(data_dic['channel'], data_dic['dac_num'])
			try:
				self.com1.write(tx_data_com1.encode('ascii'))
				self.com2.write(tx_data_com2.encode('ascii'))
			except:
				print("write error")
			finally:
				data_dic['lcc1_num'] += 1
		else:
			self.my_write_thread.quit()
			self.my_write_work.run = False

	def lcc1_fluke_read(self):
		global data_dic, cb_adc_mode, cb_meter_mode
		rows = []
		t = []
		if cb_meter_mode == 1 and cb_adc_mode == 0:
			try:
				rx_data_com1 = self.com1.readAll()
				data_dic['read_count'] += 1
				tx_data_com1 = (float(rx_data_com1) * 1000.0)
				self.dac_volt_display.display(data_dic['dac_num'])
				self.meter_volt_display.display(tx_data_com1)
				data_dic['meter'] = tx_data_com1
				t.append(data_dic['lcc1_num'])
				t.append(data_dic['dac_num'])
				t.append(data_dic['adc'])
				t.append(data_dic['meter'])
				rows.append(t)
				data_dic['fp'].writerows(rows)
			except:
				print("read error")
			if int(data_dic['read_count']) > data_dic['test_count']:
				self.my_read_thread.quit()
				self.my_read_work.run = False
		if cb_meter_mode == 0 and cb_adc_mode == 1:
			try:
				rx_data_com2 = self.com2.readAll()
				data_dic['read_count'] += 1
				tx_data_com2 = (float(rx_data_com2) * 1000.0)
				self.dac_volt_display.display(data_dic['dac_num'])
				self.adc_volt_display.display(tx_data_com2)
				data_dic['adc'] = tx_data_com2
				t.append(data_dic['lcc1_num'])
				t.append(data_dic['dac_num'])
				t.append(data_dic['adc'])
				rows.append(t)
				data_dic['fp'].writerows(rows)
			except:
				print("read error")
			if int(data_dic['read_count']) > data_dic['test_count']:
				self.my_read_thread.quit()
				self.my_read_work.run = False
		if cb_adc_mode == 1 and cb_meter_mode == 1:
			try:
				rx_data_com1 = self.com1.readAll()
				rx_data_com2 = self.com2.readAll()
				data_dic['read_count'] += 1
				tx_data_com1 = (float(rx_data_com1) * 1000.0)
				tx_data_com2 = (float(rx_data_com2) * 1000.0)
				self.dac_volt_display.display(data_dic['dac_num'])
				self.meter_volt_display.display(tx_data_com1)
				self.adc_volt_display.display(tx_data_com2)
				data_dic['adc'] = tx_data_com2
				data_dic['meter'] = tx_data_com1
				t.append(data_dic['lcc1_num'])
				t.append(data_dic['dac_num'])
				t.append(data_dic['adc'])
				t.append(data_dic['meter'])
				rows.append(t)
				data_dic['fp'].writerows(rows)
			except:
				print("read error")
			if int(data_dic['read_count']) > data_dic['test_count']:
				self.my_read_thread.quit()
				self.my_read_work.run = False

	def autotest_start(self):
		global data_dic, f
		data_dic['time_dura'] = self.LE_TestDuration.text()
		data_dic['time_dura'] = float(data_dic['time_dura'])
		data_dic['time_dura'] = data_dic['time_dura'] / 1000.0
		data_dic['btn_count'] += 1
		localtime = time.asctime(time.localtime(time.time()))
		l_time = localtime.replace(':', '_')
		header = ['num', 'dac', 'adc', 'meter']
		if data_dic['btn_count'] == 1:
			f = open('LCC1_Volt_Test {0}.csv'.format(l_time), 'w', newline='')
			data_dic['fp'] = csv.writer(f)
			data_dic['fp'].writerow(header)
		t = data_dic['btn_count'] % 2
		if t == 0:
			self.btn_autotest_start.setText("开始")
			self.my_write_work.run = False
			self.my_read_work.run = False
		else:
			self.btn_autotest_start.setText("暂停")
			lock1.lock()
			self.my_write_thread.start()  # 启动线程
			self.my_read_thread.start()
			self.my_write_work.write_delay = data_dic['time_dura']	# 线程延时
			self.my_read_work.read_delay = data_dic['time_dura']
			self.my_write_work.run = True
			self.my_read_work.run = True

	def stop_autotest(self):
		global f
		f.close()

if __name__ == "__main__":
	app = QtWidgets.QApplication(sys.argv)
	Fluke8845A = MainWindow()
	Fluke8845A.show()
	sys.exit(app.exec_())
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'fluke8845A.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(700, 450)
        MainWindow.setFixedSize(700, 450)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        MainWindow.setFont(font)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("bitbug_favicon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setInputMethodHints(QtCore.Qt.ImhNone)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setGeometry(QtCore.QRect(510, 0, 191, 341))
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.tab)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.fluke_link_status = QtWidgets.QLabel(self.tab)
        self.fluke_link_status.setAlignment(QtCore.Qt.AlignCenter)
        self.fluke_link_status.setObjectName("fluke_link_status")
        self.gridLayout.addWidget(self.fluke_link_status, 0, 0, 1, 1)
        self.fluke_com = QtWidgets.QComboBox(self.tab)
        self.fluke_com.setObjectName("fluke_com")
        self.fluke_com.addItem("")
        self.gridLayout.addWidget(self.fluke_com, 1, 0, 1, 1)
        self.fluke_baud = QtWidgets.QComboBox(self.tab)
        self.fluke_baud.setObjectName("fluke_baud")
        self.fluke_baud.addItem("")
        self.fluke_baud.addItem("")
        self.gridLayout.addWidget(self.fluke_baud, 2, 0, 1, 1)
        self.fluke_data_len = QtWidgets.QComboBox(self.tab)
        self.fluke_data_len.setObjectName("fluke_data_len")
        self.fluke_data_len.addItem("")
        self.fluke_data_len.addItem("")
        self.gridLayout.addWidget(self.fluke_data_len, 3, 0, 1, 1)
        self.fluke_stopbit = QtWidgets.QComboBox(self.tab)
        self.fluke_stopbit.setObjectName("fluke_stopbit")
        self.fluke_stopbit.addItem("")
        self.fluke_stopbit.addItem("")
        self.fluke_stopbit.addItem("")
        self.gridLayout.addWidget(self.fluke_stopbit, 4, 0, 1, 1)
        self.fluke_parity = QtWidgets.QComboBox(self.tab)
        self.fluke_parity.setObjectName("fluke_parity")
        self.fluke_parity.addItem("")
        self.fluke_parity.addItem("")
        self.fluke_parity.addItem("")
        self.gridLayout.addWidget(self.fluke_parity, 5, 0, 1, 1)
        self.fluke_btn_open = QtWidgets.QPushButton(self.tab)
        self.fluke_btn_open.setObjectName("fluke_btn_open")
        self.gridLayout.addWidget(self.fluke_btn_open, 6, 0, 1, 1)
        self.fluke_btn_close = QtWidgets.QPushButton(self.tab)
        self.fluke_btn_close.setObjectName("fluke_btn_close")
        self.gridLayout.addWidget(self.fluke_btn_close, 7, 0, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.tab_2)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.gridLayout_3 = QtWidgets.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.Lcc1_link_status = QtWidgets.QLabel(self.tab_2)
        self.Lcc1_link_status.setAlignment(QtCore.Qt.AlignCenter)
        self.Lcc1_link_status.setObjectName("Lcc1_link_status")
        self.gridLayout_3.addWidget(self.Lcc1_link_status, 0, 0, 1, 1)
        self.Lcc1_com = QtWidgets.QComboBox(self.tab_2)
        self.Lcc1_com.setObjectName("Lcc1_com")
        self.Lcc1_com.addItem("")
        self.gridLayout_3.addWidget(self.Lcc1_com, 1, 0, 1, 1)
        self.Lcc1_baud = QtWidgets.QComboBox(self.tab_2)
        self.Lcc1_baud.setObjectName("Lcc1_baud")
        self.Lcc1_baud.addItem("")
        self.Lcc1_baud.addItem("")
        self.gridLayout_3.addWidget(self.Lcc1_baud, 2, 0, 1, 1)
        self.Lcc1_data_len = QtWidgets.QComboBox(self.tab_2)
        self.Lcc1_data_len.setObjectName("Lcc1_data_len")
        self.Lcc1_data_len.addItem("")
        self.Lcc1_data_len.addItem("")
        self.gridLayout_3.addWidget(self.Lcc1_data_len, 3, 0, 1, 1)
        self.Lcc1_stopbit = QtWidgets.QComboBox(self.tab_2)
        self.Lcc1_stopbit.setObjectName("Lcc1_stopbit")
        self.Lcc1_stopbit.addItem("")
        self.Lcc1_stopbit.addItem("")
        self.Lcc1_stopbit.addItem("")
        self.gridLayout_3.addWidget(self.Lcc1_stopbit, 4, 0, 1, 1)
        self.Lcc1_parity = QtWidgets.QComboBox(self.tab_2)
        self.Lcc1_parity.setObjectName("Lcc1_parity")
        self.Lcc1_parity.addItem("")
        self.Lcc1_parity.addItem("")
        self.Lcc1_parity.addItem("")
        self.gridLayout_3.addWidget(self.Lcc1_parity, 5, 0, 1, 1)
        self.Lcc1_btn_open = QtWidgets.QPushButton(self.tab_2)
        self.Lcc1_btn_open.setObjectName("Lcc1_btn_open")
        self.gridLayout_3.addWidget(self.Lcc1_btn_open, 6, 0, 1, 1)
        self.Lcc1_btn_close = QtWidgets.QPushButton(self.tab_2)
        self.Lcc1_btn_close.setObjectName("Lcc1_btn_close")
        self.gridLayout_3.addWidget(self.Lcc1_btn_close, 7, 0, 1, 1)
        self.gridLayout_4.addLayout(self.gridLayout_3, 0, 0, 1, 1)
        self.tabWidget.addTab(self.tab_2, "")
        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(0, 290, 321, 113))
        self.layoutWidget.setObjectName("layoutWidget")
        self.gridLayout_14 = QtWidgets.QGridLayout(self.layoutWidget)
        self.gridLayout_14.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_14.setObjectName("gridLayout_14")
        self.gridLayout_9 = QtWidgets.QGridLayout()
        self.gridLayout_9.setObjectName("gridLayout_9")
        self.Lab_voltstep = QtWidgets.QLabel(self.layoutWidget)
        self.Lab_voltstep.setObjectName("Lab_voltstep")
        self.gridLayout_9.addWidget(self.Lab_voltstep, 0, 0, 1, 1)
        self.LE_VoltageStepLen = QtWidgets.QLineEdit(self.layoutWidget)
        self.LE_VoltageStepLen.setAlignment(QtCore.Qt.AlignCenter)
        self.LE_VoltageStepLen.setObjectName("LE_VoltageStepLen")
        self.gridLayout_9.addWidget(self.LE_VoltageStepLen, 0, 1, 1, 1)
        self.Lab_voltstep_mv = QtWidgets.QLabel(self.layoutWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_voltstep_mv.sizePolicy().hasHeightForWidth())
        self.Lab_voltstep_mv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_voltstep_mv.setFont(font)
        self.Lab_voltstep_mv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_voltstep_mv.setObjectName("Lab_voltstep_mv")
        self.gridLayout_9.addWidget(self.Lab_voltstep_mv, 0, 2, 1, 1)
        self.Lab_testtime = QtWidgets.QLabel(self.layoutWidget)
        self.Lab_testtime.setObjectName("Lab_testtime")
        self.gridLayout_9.addWidget(self.Lab_testtime, 1, 0, 1, 1)
        self.LE_TestDuration = QtWidgets.QLineEdit(self.layoutWidget)
        self.LE_TestDuration.setAlignment(QtCore.Qt.AlignCenter)
        self.LE_TestDuration.setReadOnly(False)
        self.LE_TestDuration.setObjectName("LE_TestDuration")
        self.gridLayout_9.addWidget(self.LE_TestDuration, 1, 1, 1, 1)
        self.Lab_testtime_ms = QtWidgets.QLabel(self.layoutWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_testtime_ms.sizePolicy().hasHeightForWidth())
        self.Lab_testtime_ms.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_testtime_ms.setFont(font)
        self.Lab_testtime_ms.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_testtime_ms.setObjectName("Lab_testtime_ms")
        self.gridLayout_9.addWidget(self.Lab_testtime_ms, 1, 2, 1, 1)
        self.gridLayout_14.addLayout(self.gridLayout_9, 0, 0, 1, 1)
        self.gridLayout_13 = QtWidgets.QGridLayout()
        self.gridLayout_13.setObjectName("gridLayout_13")
        self.btn_autotest_start = QtWidgets.QPushButton(self.layoutWidget)
        self.btn_autotest_start.setObjectName("btn_autotest_start")
        self.gridLayout_13.addWidget(self.btn_autotest_start, 0, 0, 1, 1)
        self.btn_autotest_stop = QtWidgets.QPushButton(self.layoutWidget)
        self.btn_autotest_stop.setObjectName("btn_autotest_stop")
        self.gridLayout_13.addWidget(self.btn_autotest_stop, 0, 1, 1, 1)
        self.btn_autotest_export = QtWidgets.QPushButton(self.layoutWidget)
        self.btn_autotest_export.setObjectName("btn_autotest_export")
        self.gridLayout_13.addWidget(self.btn_autotest_export, 0, 2, 1, 1)
        self.gridLayout_14.addLayout(self.gridLayout_13, 1, 0, 1, 1)
        self.splitter = QtWidgets.QSplitter(self.centralwidget)
        self.splitter.setGeometry(QtCore.QRect(1, 1, 179, 183))
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.layoutWidget1 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget1)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.gridLayout_5 = QtWidgets.QGridLayout()
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.Lab_A = QtWidgets.QLabel(self.layoutWidget1)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_A.sizePolicy().hasHeightForWidth())
        self.Lab_A.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_A.setFont(font)
        self.Lab_A.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_A.setObjectName("Lab_A")
        self.gridLayout_5.addWidget(self.Lab_A, 0, 0, 1, 1)
        self.Lab_A_mv = QtWidgets.QLabel(self.layoutWidget1)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_A_mv.sizePolicy().hasHeightForWidth())
        self.Lab_A_mv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_A_mv.setFont(font)
        self.Lab_A_mv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_A_mv.setObjectName("Lab_A_mv")
        self.gridLayout_5.addWidget(self.Lab_A_mv, 0, 1, 1, 1)
        self.le_dac_A_Input = QtWidgets.QLineEdit(self.layoutWidget1)
        self.le_dac_A_Input.setAlignment(QtCore.Qt.AlignCenter)
        self.le_dac_A_Input.setObjectName("le_dac_A_Input")
        self.gridLayout_5.addWidget(self.le_dac_A_Input, 1, 0, 1, 2)
        self.verticalLayout.addLayout(self.gridLayout_5)
        self.btn_dac_inc = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_dac_inc.setObjectName("btn_dac_inc")
        self.verticalLayout.addWidget(self.btn_dac_inc)
        self.btn_dac_dec = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_dac_dec.setObjectName("btn_dac_dec")
        self.verticalLayout.addWidget(self.btn_dac_dec)
        self.btn_dac_output = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_dac_output.setObjectName("btn_dac_output")
        self.verticalLayout.addWidget(self.btn_dac_output)
        self.layoutWidget2 = QtWidgets.QWidget(self.splitter)
        self.layoutWidget2.setObjectName("layoutWidget2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget2)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.gridLayout_6 = QtWidgets.QGridLayout()
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.Lab_B_mv = QtWidgets.QLabel(self.layoutWidget2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_B_mv.sizePolicy().hasHeightForWidth())
        self.Lab_B_mv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_B_mv.setFont(font)
        self.Lab_B_mv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_B_mv.setObjectName("Lab_B_mv")
        self.gridLayout_6.addWidget(self.Lab_B_mv, 0, 1, 1, 1)
        self.Lab_B = QtWidgets.QLabel(self.layoutWidget2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_B.sizePolicy().hasHeightForWidth())
        self.Lab_B.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_B.setFont(font)
        self.Lab_B.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_B.setObjectName("Lab_B")
        self.gridLayout_6.addWidget(self.Lab_B, 0, 0, 1, 1)
        self.le_dac_B_Input = QtWidgets.QLineEdit(self.layoutWidget2)
        self.le_dac_B_Input.setAlignment(QtCore.Qt.AlignCenter)
        self.le_dac_B_Input.setObjectName("le_dac_B_Input")
        self.gridLayout_6.addWidget(self.le_dac_B_Input, 1, 0, 1, 2)
        self.verticalLayout_2.addLayout(self.gridLayout_6)
        self.btn_dac_inc_2 = QtWidgets.QPushButton(self.layoutWidget2)
        self.btn_dac_inc_2.setObjectName("btn_dac_inc_2")
        self.verticalLayout_2.addWidget(self.btn_dac_inc_2)
        self.btn_dac_dec_2 = QtWidgets.QPushButton(self.layoutWidget2)
        self.btn_dac_dec_2.setObjectName("btn_dac_dec_2")
        self.verticalLayout_2.addWidget(self.btn_dac_dec_2)
        self.btn_dac_output_2 = QtWidgets.QPushButton(self.layoutWidget2)
        self.btn_dac_output_2.setObjectName("btn_dac_output_2")
        self.verticalLayout_2.addWidget(self.btn_dac_output_2)
        self.Lab_meter_show_mv = QtWidgets.QLabel(self.centralwidget)
        self.Lab_meter_show_mv.setGeometry(QtCore.QRect(370, 90, 28, 25))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_meter_show_mv.sizePolicy().hasHeightForWidth())
        self.Lab_meter_show_mv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_meter_show_mv.setFont(font)
        self.Lab_meter_show_mv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_meter_show_mv.setObjectName("Lab_meter_show_mv")
        self.Lab_adc_show_mv = QtWidgets.QLabel(self.centralwidget)
        self.Lab_adc_show_mv.setGeometry(QtCore.QRect(370, 0, 28, 25))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_adc_show_mv.sizePolicy().hasHeightForWidth())
        self.Lab_adc_show_mv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_adc_show_mv.setFont(font)
        self.Lab_adc_show_mv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_adc_show_mv.setObjectName("Lab_adc_show_mv")
        self.adc_volt_show = QtWidgets.QLCDNumber(self.centralwidget)
        self.adc_volt_show.setGeometry(QtCore.QRect(187, 33, 221, 51))
        self.adc_volt_show.setAutoFillBackground(True)
        self.adc_volt_show.setSmallDecimalPoint(True)
        self.adc_volt_show.setDigitCount(3)
        self.adc_volt_show.setObjectName("adc_volt_show")
        self.Lab_meter_show = QtWidgets.QLabel(self.centralwidget)
        self.Lab_meter_show.setGeometry(QtCore.QRect(190, 90, 57, 25))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_meter_show.sizePolicy().hasHeightForWidth())
        self.Lab_meter_show.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_meter_show.setFont(font)
        self.Lab_meter_show.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_meter_show.setObjectName("Lab_meter_show")
        self.Lab_adc_show = QtWidgets.QLabel(self.centralwidget)
        self.Lab_adc_show.setGeometry(QtCore.QRect(187, 2, 40, 25))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_adc_show.sizePolicy().hasHeightForWidth())
        self.Lab_adc_show.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_adc_show.setFont(font)
        self.Lab_adc_show.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_adc_show.setObjectName("Lab_adc_show")
        self.meter_volt_show = QtWidgets.QLCDNumber(self.centralwidget)
        self.meter_volt_show.setGeometry(QtCore.QRect(190, 120, 221, 51))
        self.meter_volt_show.setAutoFillBackground(True)
        self.meter_volt_show.setSmallDecimalPoint(True)
        self.meter_volt_show.setDigitCount(3)
        self.meter_volt_show.setObjectName("meter_volt_show")
        self.cb_channel_A = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_channel_A.setGeometry(QtCore.QRect(420, 150, 31, 31))
        self.cb_channel_A.setObjectName("cb_channel_A")
        self.cb_channel_B = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_channel_B.setGeometry(QtCore.QRect(470, 150, 31, 31))
        self.cb_channel_B.setObjectName("cb_channel_B")
        self.cb_auto = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_auto.setGeometry(QtCore.QRect(420, 50, 61, 31))
        self.cb_auto.setObjectName("cb_auto")
        self.cb_manul = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_manul.setGeometry(QtCore.QRect(420, 20, 71, 31))
        self.cb_manul.setObjectName("cb_manul")
        self.splitter_3 = QtWidgets.QSplitter(self.centralwidget)
        self.splitter_3.setGeometry(QtCore.QRect(0, 190, 501, 41))
        self.splitter_3.setOrientation(QtCore.Qt.Horizontal)
        self.splitter_3.setObjectName("splitter_3")
        self.Lab_dac_display = QtWidgets.QLabel(self.splitter_3)
        self.Lab_dac_display.setObjectName("Lab_dac_display")
        self.dac_volt_display = QtWidgets.QLCDNumber(self.splitter_3)
        self.dac_volt_display.setObjectName("dac_volt_display")
        self.Lab_meter_display = QtWidgets.QLabel(self.splitter_3)
        self.Lab_meter_display.setObjectName("Lab_meter_display")
        self.meter_volt_display = QtWidgets.QLCDNumber(self.splitter_3)
        self.meter_volt_display.setObjectName("meter_volt_display")
        self.Lab_adc_display = QtWidgets.QLabel(self.splitter_3)
        self.Lab_adc_display.setObjectName("Lab_adc_display")
        self.adc_volt_display = QtWidgets.QLCDNumber(self.splitter_3)
        self.adc_volt_display.setObjectName("adc_volt_display")
        self.splitter_2 = QtWidgets.QSplitter(self.centralwidget)
        self.splitter_2.setGeometry(QtCore.QRect(2, 250, 488, 31))
        self.splitter_2.setOrientation(QtCore.Qt.Horizontal)
        self.splitter_2.setObjectName("splitter_2")
        self.Lab_testrange = QtWidgets.QLabel(self.splitter_2)
        self.Lab_testrange.setObjectName("Lab_testrange")
        self.le_voltmin_input = QtWidgets.QLineEdit(self.splitter_2)
        self.le_voltmin_input.setAlignment(QtCore.Qt.AlignCenter)
        self.le_voltmin_input.setObjectName("le_voltmin_input")
        self.le_voltmax_input = QtWidgets.QLineEdit(self.splitter_2)
        self.le_voltmax_input.setAlignment(QtCore.Qt.AlignCenter)
        self.le_voltmax_input.setObjectName("le_voltmax_input")
        self.Lab_testrangemv = QtWidgets.QLabel(self.splitter_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.Lab_testrangemv.sizePolicy().hasHeightForWidth())
        self.Lab_testrangemv.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(14)
        self.Lab_testrangemv.setFont(font)
        self.Lab_testrangemv.setAlignment(QtCore.Qt.AlignCenter)
        self.Lab_testrangemv.setObjectName("Lab_testrangemv")
        self.cb_adc = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_adc.setGeometry(QtCore.QRect(420, 90, 71, 31))
        self.cb_adc.setObjectName("cb_adc")
        self.cb_meter = QtWidgets.QCheckBox(self.centralwidget)
        self.cb_meter.setGeometry(QtCore.QRect(420, 120, 81, 31))
        self.cb_meter.setObjectName("cb_meter")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 700, 23))
        self.menuBar.setObjectName("menuBar")
        self.menu_2 = QtWidgets.QMenu(self.menuBar)
        self.menu_2.setObjectName("menu_2")
        MainWindow.setMenuBar(self.menuBar)
        self.actionpath = QtWidgets.QAction(MainWindow)
        self.actionpath.setObjectName("actionpath")
        self.actionV1_0 = QtWidgets.QAction(MainWindow)
        self.actionV1_0.setObjectName("actionV1_0")
        self.menu_2.addAction(self.actionV1_0)
        self.menuBar.addAction(self.menu_2.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.fluke_link_status.setText(_translate("MainWindow", "未连接"))
        self.fluke_com.setItemText(0, _translate("MainWindow", "COM1"))
        self.fluke_baud.setItemText(0, _translate("MainWindow", "115200"))
        self.fluke_baud.setItemText(1, _translate("MainWindow", "9600"))
        self.fluke_data_len.setItemText(0, _translate("MainWindow", "8"))
        self.fluke_data_len.setItemText(1, _translate("MainWindow", "9"))
        self.fluke_stopbit.setItemText(0, _translate("MainWindow", "1"))
        self.fluke_stopbit.setItemText(1, _translate("MainWindow", "1.5"))
        self.fluke_stopbit.setItemText(2, _translate("MainWindow", "2"))
        self.fluke_parity.setItemText(0, _translate("MainWindow", "None"))
        self.fluke_parity.setItemText(1, _translate("MainWindow", "ODD"))
        self.fluke_parity.setItemText(2, _translate("MainWindow", "EVEB"))
        self.fluke_btn_open.setText(_translate("MainWindow", "打开"))
        self.fluke_btn_close.setText(_translate("MainWindow", "关闭"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
        self.Lcc1_link_status.setText(_translate("MainWindow", "未连接"))
        self.Lcc1_com.setItemText(0, _translate("MainWindow", "COM1"))
        self.Lcc1_baud.setItemText(0, _translate("MainWindow", "115200"))
        self.Lcc1_baud.setItemText(1, _translate("MainWindow", "9600"))
        self.Lcc1_data_len.setItemText(0, _translate("MainWindow", "8"))
        self.Lcc1_data_len.setItemText(1, _translate("MainWindow", "9"))
        self.Lcc1_stopbit.setItemText(0, _translate("MainWindow", "1"))
        self.Lcc1_stopbit.setItemText(1, _translate("MainWindow", "1.5"))
        self.Lcc1_stopbit.setItemText(2, _translate("MainWindow", "2"))
        self.Lcc1_parity.setItemText(0, _translate("MainWindow", "None"))
        self.Lcc1_parity.setItemText(1, _translate("MainWindow", "ODD"))
        self.Lcc1_parity.setItemText(2, _translate("MainWindow", "EVEB"))
        self.Lcc1_btn_open.setText(_translate("MainWindow", "打开"))
        self.Lcc1_btn_close.setText(_translate("MainWindow", "关闭"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
        self.Lab_voltstep.setText(_translate("MainWindow", "电压步长"))
        self.Lab_voltstep_mv.setText(_translate("MainWindow", "mv"))
        self.Lab_testtime.setText(_translate("MainWindow", "时间间隔"))
        self.Lab_testtime_ms.setText(_translate("MainWindow", "ms"))
        self.btn_autotest_start.setText(_translate("MainWindow", "开始"))
        self.btn_autotest_stop.setText(_translate("MainWindow", "停止"))
        self.btn_autotest_export.setText(_translate("MainWindow", "导出"))
        self.Lab_A.setText(_translate("MainWindow", "A"))
        self.Lab_A_mv.setText(_translate("MainWindow", "mv"))
        self.btn_dac_inc.setText(_translate("MainWindow", "增加"))
        self.btn_dac_dec.setText(_translate("MainWindow", "减小"))
        self.btn_dac_output.setText(_translate("MainWindow", "输出"))
        self.Lab_B_mv.setText(_translate("MainWindow", "mv"))
        self.Lab_B.setText(_translate("MainWindow", "B"))
        self.btn_dac_inc_2.setText(_translate("MainWindow", "增加"))
        self.btn_dac_dec_2.setText(_translate("MainWindow", "减小"))
        self.btn_dac_output_2.setText(_translate("MainWindow", "输出"))
        self.Lab_meter_show_mv.setText(_translate("MainWindow", "mv"))
        self.Lab_adc_show_mv.setText(_translate("MainWindow", "mv"))
        self.Lab_meter_show.setText(_translate("MainWindow", "万用表"))
        self.Lab_adc_show.setText(_translate("MainWindow", "ADC"))
        self.cb_channel_A.setText(_translate("MainWindow", "A"))
        self.cb_channel_B.setText(_translate("MainWindow", "B"))
        self.cb_auto.setText(_translate("MainWindow", "自动"))
        self.cb_manul.setText(_translate("MainWindow", "手动"))
        self.Lab_dac_display.setText(_translate("MainWindow", "DAC"))
        self.Lab_meter_display.setText(_translate("MainWindow", "万用表"))
        self.Lab_adc_display.setText(_translate("MainWindow", "ADC"))
        self.Lab_testrange.setText(_translate("MainWindow", "测试量程"))
        self.Lab_testrangemv.setText(_translate("MainWindow", "v"))
        self.cb_adc.setText(_translate("MainWindow", "ADC"))
        self.cb_meter.setText(_translate("MainWindow", "Meter"))
        self.menu_2.setTitle(_translate("MainWindow", "版本信息"))
        self.actionpath.setText(_translate("MainWindow", "path"))
        self.actionV1_0.setText(_translate("MainWindow", "V1.0"))

猜你喜欢

转载自blog.csdn.net/cp_srd/article/details/106876891
今日推荐