update 更新框架和控制细节

This commit is contained in:
Dream
2024-08-29 18:41:51 +08:00
parent 304a7044d4
commit 0ac8f8e86f
9 changed files with 1015 additions and 550 deletions

View File

@ -9,6 +9,7 @@ class TCPClient:
self.IPAddress = ip
self.port = port
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.client_socket.settimeout(5)
def CreatConnect(self):

View File

@ -10,3 +10,7 @@ class Command:
self.status = Status.Prepareing
pass
class FeedCommand(Command):
def __init__(self, feedingConfig):
super().__init__()
self.feed_config = feedingConfig

View File

@ -1,11 +1,22 @@
from Model.Position import Real_Position
from enum import Enum
class FeedStatus(Enum):
FNone = 0
FStart = 1
FSafeP = 2
FPhoto = 3
FTake = 4
FSafeF = 5
FFeedP = 6
FFinished = 7
class FeedLine:
def __init__(self,safe_position:Real_Position,photo_position:Real_Position,feed_position:Real_Position):
self.safe_position = safe_position
self.photo_position = photo_position
self.feed_position = feed_position
self.take_position = None
class FeedingConfig:
@ -19,5 +30,78 @@ class FeedingConfig:
class Feeding():
def __init__(self,feedingConfig):
def __init__(self,robotClient:RobotClient):
self.feedConfig = None
self.feedStatus = FeedStatus.FNone
self.robotClient = robotClient
pass
def run(self):
# 获取事件坐标
real_position = Real_Position()
real_position.init_position(self.robotClient.status_model.world_n[0],
self.robotClient.status_model.world_n[1],
self.robotClient.status_model.world_n[2],
self.robotClient.status_model.world_n[3],
self.robotClient.status_model.world_n[4],
self.robotClient.status_model.world_n[5],
self.robotClient.status_model.world_n[6]);
if self.feedStatus==FeedStatus.FNone:
pass
elif self.feedStatus==FeedStatus.FStart:
if self.feedConfig.num != 0:
self.feedStatus = FeedStatus.FSafeP
sendTargPosition(self.feedConfig.safe_position)
#print(request_command)
pass
elif self.feedStatus==FeedStatus.FSafeP:
if self.feedConfig.safe_position.compare(real_position):
self.feedStatus = FeedStatus.FPhoto
sendTargPosition(self.feedConfig.photo_position)
elif self.feedStatus == FeedStatus.FPhoto:
if self.feedConfig.photo_position.compare(real_position):
self.feedStatus = FeedStatus.FTake
pass # 发送拍照获取坐标 并 开始移动
elif self.feedStatus == FeedStatus.FTake:
if self.feedConfig.take_position != None and self.feedConfig.take_position.compare(real_position):
self.feedStatus = FeedStatus.FSafeF
pass #打开吸嘴并返回
elif self.feedStatus == FeedStatus.FSafeF:
if self.feedConfig.safe_position.compare(real_position):
self.feedStatus = FeedStatus.FFeedP
sendTargPosition(self.feedConfig.feed_position)
pass #吸嘴开始
elif self.feedStatus==FeedStatus.FFeedP:
if self.feedConfig.feed_position.compare(real_position):
self.feedConfig.num = self.feedConfig.num-1
if self.feedConfig.num == 0:
self.feedStatus=FeedStatus.FNone
else:
self.feedStatus = FeedStatus.FSafeP
sendTargPosition(self.feedConfig.safe_position)
pass
def sendTargPosition(self,real_position):
position_instruction = Instruction()
position_instruction.m0 = self.feedConfig.safe_position.X
position_instruction.m1 = self.feedConfig.safe_position.Y
position_instruction.m2 = self.feedConfig.safe_position.Z
position_instruction.m3 = self.feedConfig.safe_position.U
position_instruction.m4 = self.feedConfig.safe_position.V
position_instruction.m5 = self.feedConfig.safe_position.W
instruction_command = CMDInstructRequest()
instruction_command.instructions.append(vars(position_instruction))
request_command = vars(instruction_command)
self.robotClient.add_sendQuene(request_command)
pass

View File

@ -7,9 +7,6 @@ class Error_Code(Enum):
class VisionError_Code(Enum):
CAMERA_SUCCESS = 200
class TraceError_Code(Enum):
Trace_SUCCESS = 300

View File

@ -1,9 +1,5 @@
"""
摄像头识别位置和角度
"""
class Detection_Position:
class Position:
def __init__(self):
self.X = 0.0
self.Y = 0.0
@ -11,6 +7,23 @@ class Detection_Position:
self.U = 0.0
self.V = 0.0
self.W = 0.0
def compare(self,position):
if self.X-position.X<position_accuracy and \
self.Y-position.Y<position_accuracy and \
self.Z - position.Z < position_accuracy and \
self.U - position.U < position_accuracy and \
self.V - position.V < position_accuracy and \
self.W - position.W < position_accuracy:
return True
else:
return False
pass
"""
摄像头识别位置和角度
"""
class Detection_Position(Position):
def __init__(self):
super().__init__()
def init_position(self,X,Y,Z,U,V,W):
self.X = X
@ -21,14 +34,9 @@ class Detection_Position:
self.W = W
class Real_Position:
class Real_Position(Position):
def __init__(self):
self.X = 0.0
self.Y = 0.0
self.Z = 0.0
self.U = 0.0
self.V = 0.0
self.W = 0.0
super().__init__()
def init_position(self, X, Y, Z, U, V, W):
self.X = X

View File

@ -16,7 +16,7 @@ class DataAddress:
self.boardIONum = ''
self.input_n = ''
self.output_n = ''
self.axisNum = ''
self.axisNum = '6'
self.axis_n = ''
self.world_n = ''
self.curAlarm = ''

236
app.py
View File

@ -3,8 +3,9 @@ import json
import queue
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
from CU.Feeding import FeedLine, FeedingConfig
from datetime import datetime
from CU.Command import FeedCommand
from CU.Feeding import FeedLine, FeedingConfig, Feeding, FeedStatus
from ui_untitled import Ui_MainWindow
from COM.COM_Robot import RobotClient
from Expection import Error_Code
@ -13,6 +14,8 @@ from Model.RobotModel import *
import time
from queue import Queue
from Model.Position import Real_Position
from threading import Thread
from CU.Command import Status
@ -20,87 +23,61 @@ class MainWindow(QMainWindow,Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
self.pushButton_17.clicked.connect(self.send_position_button_click)
self.robotClient = None
self.configReader = configparser.ConfigParser()
self.init_UI()
self.init_Run()
self.init_FeedLine()
self.init_robot_info()
start_Runing()
def init_UI(self):
self.horizontalSlider_J1.sliderReleased.connect(self.slider_valueChanged)
self.horizontalSlider_J2.sliderReleased.connect(self.slider_valueChanged)
self.horizontalSlider_J3.sliderReleased.connect(self.slider_valueChanged)
self.horizontalSlider_J4.sliderReleased.connect(self.slider_valueChanged)
self.horizontalSlider_J5.sliderReleased.connect(self.slider_valueChanged)
self.horizontalSlider_J6.sliderReleased.connect(self.slider_valueChanged)
#self.horizontalSlider_J1.sliderReleased
self.pushButton_num1.clicked.connect(self.send_num_button_click)
self.pushButton_num2.clicked.connect(self.send_num_button_click)
self.pushButton_num3.clicked.connect(self.send_num_button_click)
self.pushButton_num4.clicked.connect(self.send_num_button_click)
self.pushButton_num5.clicked.connect(self.send_num_button_click)
self.pushButton_num6.clicked.connect(self.send_num_button_click)
self.pushButton_AddNum.clicked.connect(self.send_addNum_button_click)
self.pushButton_SubNum.clicked.connect(self.send_subNum_button_click)
self.pushButton_num_free.clicked.connect(self.send_num_button_click)
self.lineEdit_num.returnPressed.connect(self.send_custom_num_returnPressed)
int_validator = QIntValidator(0, 100, self)
self.lineEdit_num.setValidator(int_validator)
# self.horizontalSlider_J1.sliderReleased
self.pushButton_startFeed.clicked.connect(self.send_startFeed_button_click)
def init_Run(self):
self.robotClient = None
self.configReader = configparser.ConfigParser()
self.command_position_quene = Queue()
self.status_address = DataAddress()
self.feedLine_dict = dir()
self.command_quene = Queue()
self.init_Run()
self.init_robot_info()
self.main_threading = None
def send_startFeed_button_click(self):
num = self.horizontalSlider_feedingNum.value()
line_index = str(self.comboBox_lineIndex.currentIndex()+1)
self.command_quene.put(FeedingConfig(num, line_index))
def slider_valueChanged(self):
global last_time
now_time = time.time()
if(now_time-last_time) < 2:
return
last_time = now_time
position_instruction = Instruction()
position_instruction.m0 = self.horizontalSlider_J1.value()
position_instruction.m1 = self.horizontalSlider_J2.value()
position_instruction.m2 = self.horizontalSlider_J3.value()
position_instruction.m3 = self.horizontalSlider_J4.value()
position_instruction.m4 = self.horizontalSlider_J5.value()
position_instruction.m5 = self.horizontalSlider_J6.value()
self.textEdit_j1.setText(str(self.horizontalSlider_J1.value()))
self.textEdit_j2.setText(str(self.horizontalSlider_J2.value()))
self.textEdit_j3.setText(str(self.horizontalSlider_J3.value()))
self.textEdit_j4.setText(str(self.horizontalSlider_J4.value()))
self.textEdit_j5.setText(str(self.horizontalSlider_J5.value()))
self.textEdit_j6.setText(str(self.horizontalSlider_J6.value()))
instruction_command = CMDInstructRequest()
instruction_command.instructions.append(vars(position_instruction))
request_command = vars(instruction_command)
print(request_command)
self.robotClient.add_sendQuene(request_command)
def on_button_click(self):
self.button.setText("Clicked!")
def send_position_button_click(self):
# if True:
# cmd_command = CMDRequest()
# cmd_command.cmdData = ['rewriteData', '800', f'{position_instruction.m0}', 0]
# request_command = vars(cmd_command)
# self.robotClient.add_sendQuene(request_command)
return
def init_Run(self):
self.configReader.read('Seting.ini')
ip = self.configReader.get('Robot_Feed', 'IPAddress')
port= int(self.configReader.get('Robot_Feed', 'Port'))
self.robotClient = RobotClient(ip, port,self.command_position_quene,self.status_address)
self.robotClient.CreatConnect()
self.read_FeedLine()
port = int(self.configReader.get('Robot_Feed', 'Port'))
self.robotClient = RobotClient(ip, port, self.command_position_quene, self.status_address)
try:
self.robotClient.CreatConnect()
except:
return Error_Code.SYS_NETERROR
if self.robotClient.is_Connect():
return 0
else:
return Error_Code.NETERROR
self.feeding = Feeding(self.robotClient) #临时
def read_FeedLine(self):
def init_FeedLine(self):
line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0)
self.configReader.read('Config/FeedLine.ini')
for i in range(line_count):
@ -135,7 +112,6 @@ class MainWindow(QMainWindow,Ui_MainWindow):
pass
def init_robot_info(self):
j1_min = int(self.configReader.get('Robot', 'j1_min'))
j1_max = int(self.configReader.get('Robot', 'j1_max'))
@ -174,11 +150,139 @@ class MainWindow(QMainWindow,Ui_MainWindow):
self.label_j6_min.setText(j6_min.__str__())
self.label_j6_max.setText(str(j6_max))
def start_Runing(self):
self.main_threading = Thread(target=run)
self.main_threading.start()
def send_startFeed_button_click(self):
num = self.horizontalSlider_feedingNum.value()
line_index = str(self.comboBox_lineIndex.currentIndex()+1)
self.command_quene.put(FeedCommand(FeedingConfig(num, line_index)))
self.stackedWidget_num.setCurrentIndex(1)
def send_num_button_click(self):
button = self.sender()
if button.text() != "自定义":
num = int(button.text())
self.horizontalSlider_feedingNum.setMaximum(num)
self.horizontalSlider_feedingNum.setValue(0)
else:
self.pushButton_num_free.hide()
def send_addNum_button_click(self):
self.feeding.feedConfig.num +=1
def send_subNum_button_click(self):
self.feeding.feedConfig.num -=1
def send_custom_num_returnPressed(self):
self.pushButton_num_free.show()
self.lineEdit_num.hide()
self.horizontalSlider_feedingNum.setValue(int(self.lineEdit_num.text()))
def slider_valueChanged(self):
global last_time
now_time = time.time()
if(now_time-last_time) < 2:
return
last_time = now_time
position_instruction = Instruction()
position_instruction.m0 = self.horizontalSlider_J1.value()
position_instruction.m1 = self.horizontalSlider_J2.value()
position_instruction.m2 = self.horizontalSlider_J3.value()
position_instruction.m3 = self.horizontalSlider_J4.value()
position_instruction.m4 = self.horizontalSlider_J5.value()
position_instruction.m5 = self.horizontalSlider_J6.value()
self.textEdit_j1.setText(str(self.horizontalSlider_J1.value()))
self.textEdit_j2.setText(str(self.horizontalSlider_J2.value()))
self.textEdit_j3.setText(str(self.horizontalSlider_J3.value()))
self.textEdit_j4.setText(str(self.horizontalSlider_J4.value()))
self.textEdit_j5.setText(str(self.horizontalSlider_J5.value()))
self.textEdit_j6.setText(str(self.horizontalSlider_J6.value()))
instruction_command = CMDInstructRequest()
instruction_command.instructions.append(vars(position_instruction))
request_command = vars(instruction_command)
print(request_command)
self.robotClient.add_sendQuene(request_command)
def on_button_click(self):
self.button.setText("Clicked!")
def send_position_button_click(self):
# if True:
# cmd_command = CMDRequest()
# cmd_command.cmdData = ['rewriteData', '800', f'{position_instruction.m0}', 0]
# request_command = vars(cmd_command)
# self.robotClient.add_sendQuene(request_command)
return
def run(self):
pass #主线程
while True:
if not self.command_quene.empty():
command = self.command_quene.get()
if isinstance(command, FeedCommand) and command.status == Status.Prepareing:
if self.feeding.feedStatus == FeedStatus.FNone:
self.feeding.feedConfig = command.feed_config
self.feeding.feedStatus = FeedStatus.FStart
command.status = Status.Runing
def send_position_command(self,position):
self.feeding.run()
updateUI(self)
#pass #主线程
def updateUI(self):
if self.robotClient.is_Connect():
self.set_label_status_style(True)
else:
self.set_label_status_style(False)
self.horizontalSlider_feedingNum.setValue(self.horizontalSlider_feedingNum.maximum()-self.feeding.feedConfig.num)
if self.horizontalSlider_feedingNum.value() == 0:
self.stackedWidget_num.setCurrentIndex(0)
else:
self.stackedWidget_num.setCurrentIndex(1)
self.label_date.setText(datetime.now().strftime("%Y-%m-%d"))
self.label_time.setText(datetime.now().strftime("%H:%M:%S"))
def set_label_status_style(self,connected:bool):
palette = self.label_connect_status.palette()
if connected:
self.label_connect_status.setStyleSheet("""
QLabel {
background-color: #A2EF4D; /* 设置背景颜色 */
color: #ffffff; /* 设置字体颜色 */
border-radius: 8px; /* 圆角半径设置为 QLabel 的一半,形成圆形 */
border: 1px solid #A2EF4D; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
}
""")
else:
self.label_connect_status.setStyleSheet("""
QLabel {
background-color: #FD3251; /* 设置背景颜色 */
color: #ffffff; /* 设置字体颜色 */
border-radius: 8px; /* 圆角半径设置为 QLabel 的一半,形成圆形 */
border: 1px solid #FD3251; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
}
""")
def send_position_command(self, position):
self.robotClient.add_sendQuene(position)

View File

@ -25,33 +25,20 @@ class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(901, 656)
MainWindow.resize(901, 665)
MainWindow.setStyleSheet(u"background-color: rgb(12, 78, 139);")
MainWindow.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.label = QLabel(self.centralwidget)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(30, 613, 261, 31))
self.label.setStyleSheet(u"color:#fff;\n"
"font: 290 12pt \"Microsoft YaHei\";\n"
"font: 700 12pt \"Microsoft YaHei UI\";")
self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.label_2 = QLabel(self.centralwidget)
self.label_2.setObjectName(u"label_2")
self.label_2.setGeometry(QRect(690, 610, 91, 16))
self.label_2.setStyleSheet(u"color:#fff;\n"
self.label_time = QLabel(self.centralwidget)
self.label_time.setObjectName(u"label_time")
self.label_time.setGeometry(QRect(780, 640, 91, 16))
self.label_time.setStyleSheet(u"color:#fff;\n"
"font: 290 9pt \"Microsoft YaHei\";\n"
"font: 700 9pt \"Microsoft YaHei UI\";")
self.label_3 = QLabel(self.centralwidget)
self.label_3.setObjectName(u"label_3")
self.label_3.setGeometry(QRect(670, 630, 91, 16))
self.label_3.setStyleSheet(u"color:#5188BE;\n"
"font: 290 9pt \"Microsoft YaHei\";")
self.label_3.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.tabWidget = QTabWidget(self.centralwidget)
self.tabWidget.setObjectName(u"tabWidget")
self.tabWidget.setGeometry(QRect(0, 0, 901, 601))
self.tabWidget.setGeometry(QRect(0, 0, 901, 631))
self.tabWidget.setStyleSheet(u"background-color:#E6ECF5;")
self.tab = QWidget()
self.tab.setObjectName(u"tab")
@ -63,7 +50,7 @@ class Ui_MainWindow(object):
self.page.setObjectName(u"page")
self.frame_2 = QFrame(self.page)
self.frame_2.setObjectName(u"frame_2")
self.frame_2.setGeometry(QRect(0, 0, 877, 555))
self.frame_2.setGeometry(QRect(0, 10, 877, 541))
self.frame_2.setStyleSheet(u"background-color: #E6ECF5;\n"
"")
self.frame_2.setFrameShape(QFrame.Shape.StyledPanel)
@ -106,7 +93,7 @@ class Ui_MainWindow(object):
self.horizontalSlider_feedingNum = QSlider(self.frame_3)
self.horizontalSlider_feedingNum.setObjectName(u"horizontalSlider_feedingNum")
self.horizontalSlider_feedingNum.setGeometry(QRect(520, 150, 271, 41))
self.horizontalSlider_feedingNum.setStyleSheet(u"QSlider\n"
self.horizontalSlider_feedingNum.setStyleSheet(u"/**QSlider\n"
"{\n"
" background-color: #FFFFFF; \n"
" border-style: outset; \n"
@ -129,6 +116,46 @@ class Ui_MainWindow(object):
" border-radius:5px; \n"
" border: 3px solid #007900;\n"
"}\n"
"**/\n"
"/*\u7b2c\u4e00\u79cd\u98ce\u683c*/\n"
"/**\n"
" groove\u8868\u793a\u69fd\u7684\u90e8\u5206\n"
" handle\u8868\u793a\u6ed1\u5757\n"
" add-page\u8868\u793a\u672a\u6ed1\u8fc7\u7684\u69fd\u90e8\u5206\n"
" sub-page\u8868\u793a\u5df2\u6ed1\u8fc7\u7684\u69fd\u90e8\u5206\n"
" \u5728\u8f85\u52a9\u63a7\u5236\u5668\u540e\u9762\u53ef\u4ee5\u8bbe\u7f6e\u72b6\u6001\uff0chorizontal\u5c31\u662fQSS\u751f\u6548\u7684QSlider\u7684\u72b6\u6001\n"
"*"
"*/\n"
"\n"
"QSlider::groove:horizontal\n"
"{\n"
" height:10px;\n"
" border-radius: 5px;\n"
" background-color:rgb(219,219,219);\n"
"}\n"
"\n"
"\n"
"QSlider::handle:horizontal \n"
"{\n"
" background: QRadialGradient(cx:0, cy:0, radius: 1, fx:0.5, fy:0.5,stop:0 green, stop:1 green);\n"
" width: 5px;\n"
" height: 5px;\n"
" margin: -5px 3px -5px 6px;\n"
" border-radius:5px; \n"
" border: 3px solid #007900;\n"
"}\n"
"\n"
"QSlider::add-page:horizontal\n"
"{\n"
" border-radius: 5px;\n"
" background-color: rgb(219,219,219);\n"
"}\n"
" \n"
"QSlider::sub-page:horizontal\n"
"{\n"
" border-radius: 5px;\n"
" background-color: rgb(80,166,234);\n"
"}\n"
"\n"
"\n"
"\n"
@ -140,118 +167,6 @@ class Ui_MainWindow(object):
self.label_5.setObjectName(u"label_5")
self.label_5.setGeometry(QRect(800, 160, 31, 21))
self.label_5.setStyleSheet(u"font: 9pt \"\u6977\u4f53\";")
self.pushButton_20 = QPushButton(self.frame_3)
self.pushButton_20.setObjectName(u"pushButton_20")
self.pushButton_20.setGeometry(QRect(520, 70, 61, 31))
self.pushButton_20.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_21 = QPushButton(self.frame_3)
self.pushButton_21.setObjectName(u"pushButton_21")
self.pushButton_21.setGeometry(QRect(590, 70, 61, 31))
self.pushButton_21.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_22 = QPushButton(self.frame_3)
self.pushButton_22.setObjectName(u"pushButton_22")
self.pushButton_22.setGeometry(QRect(660, 70, 61, 31))
self.pushButton_22.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_23 = QPushButton(self.frame_3)
self.pushButton_23.setObjectName(u"pushButton_23")
self.pushButton_23.setGeometry(QRect(730, 70, 61, 31))
self.pushButton_23.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_24 = QPushButton(self.frame_3)
self.pushButton_24.setObjectName(u"pushButton_24")
self.pushButton_24.setGeometry(QRect(520, 110, 61, 31))
self.pushButton_24.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_25 = QPushButton(self.frame_3)
self.pushButton_25.setObjectName(u"pushButton_25")
self.pushButton_25.setGeometry(QRect(590, 110, 61, 31))
self.pushButton_25.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_26 = QPushButton(self.frame_3)
self.pushButton_26.setObjectName(u"pushButton_26")
self.pushButton_26.setGeometry(QRect(660, 110, 61, 31))
self.pushButton_26.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.frame_4 = QFrame(self.frame_3)
self.frame_4.setObjectName(u"frame_4")
self.frame_4.setGeometry(QRect(500, 200, 331, 251))
@ -536,18 +451,10 @@ class Ui_MainWindow(object):
"}\n"
"")
self.pushButton_38.setIcon(icon)
self.lineEdit = QLineEdit(self.frame_3)
self.lineEdit.setObjectName(u"lineEdit")
self.lineEdit.setGeometry(QRect(730, 110, 61, 31))
self.lineEdit.setStyleSheet(u"background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";")
self.lineEdit.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.textEdit = QTextEdit(self.frame_3)
self.textEdit.setObjectName(u"textEdit")
self.textEdit.setGeometry(QRect(10, 280, 481, 171))
self.textEdit.setStyleSheet(u"*{\n"
self.textEdit_log = QTextEdit(self.frame_3)
self.textEdit_log.setObjectName(u"textEdit_log")
self.textEdit_log.setGeometry(QRect(10, 280, 481, 171))
self.textEdit_log.setStyleSheet(u"*{\n"
" \n"
" background-color: #E6ECF5;\n"
"}")
@ -582,20 +489,174 @@ class Ui_MainWindow(object):
" padding: 4px 4px 4px 4px;\n"
" outline: none;\n"
"}")
self.lineEdit.raise_()
self.label_4.raise_()
self.horizontalSlider_feedingNum.raise_()
self.label_5.raise_()
self.pushButton_20.raise_()
self.pushButton_21.raise_()
self.pushButton_22.raise_()
self.pushButton_23.raise_()
self.pushButton_24.raise_()
self.pushButton_25.raise_()
self.pushButton_26.raise_()
self.frame_4.raise_()
self.textEdit.raise_()
self.comboBox_lineIndex.raise_()
self.stackedWidget_num = QStackedWidget(self.frame_3)
self.stackedWidget_num.setObjectName(u"stackedWidget_num")
self.stackedWidget_num.setGeometry(QRect(510, 60, 291, 91))
self.stackedWidget_num.setStyleSheet(u"background-color: rgb(255, 255, 255);")
self.page_3 = QWidget()
self.page_3.setObjectName(u"page_3")
self.pushButton_num5 = QPushButton(self.page_3)
self.pushButton_num5.setObjectName(u"pushButton_num5")
self.pushButton_num5.setGeometry(QRect(10, 60, 61, 31))
self.pushButton_num5.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num1 = QPushButton(self.page_3)
self.pushButton_num1.setObjectName(u"pushButton_num1")
self.pushButton_num1.setGeometry(QRect(10, 20, 61, 31))
self.pushButton_num1.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num6 = QPushButton(self.page_3)
self.pushButton_num6.setObjectName(u"pushButton_num6")
self.pushButton_num6.setGeometry(QRect(80, 60, 61, 31))
self.pushButton_num6.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num3 = QPushButton(self.page_3)
self.pushButton_num3.setObjectName(u"pushButton_num3")
self.pushButton_num3.setGeometry(QRect(150, 20, 61, 31))
self.pushButton_num3.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num4 = QPushButton(self.page_3)
self.pushButton_num4.setObjectName(u"pushButton_num4")
self.pushButton_num4.setGeometry(QRect(220, 20, 61, 31))
self.pushButton_num4.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num_free = QPushButton(self.page_3)
self.pushButton_num_free.setObjectName(u"pushButton_num_free")
self.pushButton_num_free.setGeometry(QRect(150, 60, 61, 31))
self.pushButton_num_free.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.pushButton_num2 = QPushButton(self.page_3)
self.pushButton_num2.setObjectName(u"pushButton_num2")
self.pushButton_num2.setGeometry(QRect(80, 20, 61, 31))
self.pushButton_num2.setStyleSheet(u"\n"
"*{background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";\n"
"}\n"
"*:hover {\n"
" background-color: lightgreen;\n"
" color: black;\n"
"}*:pressed {\n"
" background-color: red;\n"
" color: white;\n"
" }")
self.lineEdit_num = QLineEdit(self.page_3)
self.lineEdit_num.setObjectName(u"lineEdit_num")
self.lineEdit_num.setGeometry(QRect(150, 60, 61, 31))
self.lineEdit_num.setStyleSheet(u"background-color: #F9FAFC;\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"font: 10pt \"\u6977\u4f53\";")
self.lineEdit_num.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.stackedWidget_num.addWidget(self.page_3)
self.lineEdit_num.raise_()
self.pushButton_num5.raise_()
self.pushButton_num1.raise_()
self.pushButton_num6.raise_()
self.pushButton_num3.raise_()
self.pushButton_num4.raise_()
self.pushButton_num_free.raise_()
self.pushButton_num2.raise_()
self.page_4 = QWidget()
self.page_4.setObjectName(u"page_4")
self.pushButton_AddNum = QPushButton(self.page_4)
self.pushButton_AddNum.setObjectName(u"pushButton_AddNum")
self.pushButton_AddNum.setGeometry(QRect(30, 30, 91, 41))
self.pushButton_AddNum.setStyleSheet(u"*{\n"
"background-color: #499C54;\n"
"font: 12pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"}\n"
"*:pressed\n"
"{\n"
"background-color: #499c8a;\n"
"}\n"
"")
self.pushButton_AddNum.setIcon(icon)
self.pushButton_SubNum = QPushButton(self.page_4)
self.pushButton_SubNum.setObjectName(u"pushButton_SubNum")
self.pushButton_SubNum.setGeometry(QRect(170, 30, 91, 41))
self.pushButton_SubNum.setStyleSheet(u"*{\n"
"background-color: rgb(255, 0, 0);\n"
"font: 12pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n"
"border-radius: 10px;\n"
"}\n"
"*:pressed\n"
"{\n"
"background-color: #499c8a;\n"
"}\n"
"")
self.pushButton_SubNum.setIcon(icon1)
self.stackedWidget_num.addWidget(self.page_4)
self.pushButton_16 = QPushButton(self.frame_2)
self.pushButton_16.setObjectName(u"pushButton_16")
self.pushButton_16.setGeometry(QRect(560, 510, 91, 31))
@ -664,10 +725,10 @@ class Ui_MainWindow(object):
"")
icon5 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.SystemShutdown))
self.pushButton_startFeed.setIcon(icon5)
self.pushButton_39 = QPushButton(self.frame_2)
self.pushButton_39.setObjectName(u"pushButton_39")
self.pushButton_39.setGeometry(QRect(460, 510, 91, 31))
self.pushButton_39.setStyleSheet(u"*{\n"
self.pushButton_reset = QPushButton(self.frame_2)
self.pushButton_reset.setObjectName(u"pushButton_reset")
self.pushButton_reset.setGeometry(QRect(460, 510, 91, 31))
self.pushButton_reset.setStyleSheet(u"*{\n"
"background-color: #FFFFBF;\n"
"font: 9pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n"
@ -679,7 +740,7 @@ class Ui_MainWindow(object):
"}\n"
"")
icon6 = QIcon(QIcon.fromTheme(u"media-optical"))
self.pushButton_39.setIcon(icon6)
self.pushButton_reset.setIcon(icon6)
self.stackedWidget.addWidget(self.page)
self.page_2 = QWidget()
self.page_2.setObjectName(u"page_2")
@ -697,16 +758,51 @@ class Ui_MainWindow(object):
self.pushButton.setObjectName(u"pushButton")
self.pushButton.setGeometry(QRect(10, 39, 75, 23))
self.tabWidget.addTab(self.tab_2, "")
self.label_date = QLabel(self.centralwidget)
self.label_date.setObjectName(u"label_date")
self.label_date.setGeometry(QRect(690, 640, 91, 16))
self.label_date.setStyleSheet(u"color:#fff;\n"
"font: 290 9pt \"Microsoft YaHei\";\n"
"font: 700 9pt \"Microsoft YaHei UI\";")
self.label_date.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.frame = QFrame(self.centralwidget)
self.frame.setObjectName(u"frame")
self.frame.setGeometry(QRect(300, 634, 301, 28))
self.frame.setStyleSheet(u"background-color: #9A9A9A;")
self.frame.setFrameShape(QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QFrame.Shadow.Raised)
self.label = QLabel(self.frame)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(20, 7, 81, 16))
self.label.setStyleSheet(u"color: #F9FFF9;\n"
"font: 700 9pt \"\u7b49\u7ebf\";")
self.label_connect_status = QLabel(self.frame)
self.label_connect_status.setObjectName(u"label_connect_status")
self.label_connect_status.setGeometry(QRect(220, 7, 16, 16))
self.label_connect_status.setStyleSheet(u"QLabel {\n"
" background-color: #A2EF4D; /* \u8bbe\u7f6e\u80cc\u666f\u989c\u8272 */\n"
" color: #ffffff; /* \u8bbe\u7f6e\u5b57\u4f53\u989c\u8272 */\n"
" border-radius: 8px; /* \u5706\u89d2\u534a\u5f84\u8bbe\u7f6e\u4e3a QLabel \u7684\u4e00\u534a\uff0c\u5f62\u6210\u5706\u5f62 */\n"
" border: 1px solid #A2EF4D; /* \u8bbe\u7f6e\u8fb9\u6846\u989c\u8272\u548c\u5bbd\u5ea6 */\n"
" qproperty-alignment: 'AlignCenter'; /* \u8bbe\u7f6e\u6587\u672c\u5c45\u4e2d */\n"
"}\n"
"")
self.label_6 = QLabel(self.frame)
self.label_6.setObjectName(u"label_6")
self.label_6.setGeometry(QRect(160, 7, 51, 16))
self.label_6.setStyleSheet(u"color: #F9FFF9;\n"
"font: 700 9pt \"\u7b49\u7ebf\";")
MainWindow.setCentralWidget(self.centralwidget)
self.tabWidget.raise_()
self.label.raise_()
self.label_2.raise_()
self.label_3.raise_()
self.label_time.raise_()
self.label_date.raise_()
self.frame.raise_()
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
self.stackedWidget.setCurrentIndex(0)
self.stackedWidget_num.setCurrentIndex(0)
QMetaObject.connectSlotsByName(MainWindow)
@ -714,21 +810,12 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u81ea\u52a8\u5316\u5bc6\u80fa\u751f\u4ea7", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"\u6e56\u5357\u957f\u6c99\u5927\u5c27\u4fe1\u606f\u79d1\u6280\u6709\u9650\u516c\u53f8", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"08:00:00", None))
self.label_3.setText(QCoreApplication.translate("MainWindow", u"2024-08-01", None))
self.label_time.setText(QCoreApplication.translate("MainWindow", u"08:00:00", None))
self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"\u76d1\u63a7\u6295\u6599", None))
self.pushButton_4.setText(QCoreApplication.translate("MainWindow", u"\u6295\u6599\u8bbe\u7f6e", None))
self.pushButton_5.setText(QCoreApplication.translate("MainWindow", u"IO\u8c03\u8bd5", None))
self.label_4.setText("")
self.label_5.setText(QCoreApplication.translate("MainWindow", u"10", None))
self.pushButton_20.setText(QCoreApplication.translate("MainWindow", u"10", None))
self.pushButton_21.setText(QCoreApplication.translate("MainWindow", u"20", None))
self.pushButton_22.setText(QCoreApplication.translate("MainWindow", u"30", None))
self.pushButton_23.setText(QCoreApplication.translate("MainWindow", u"40", None))
self.pushButton_24.setText(QCoreApplication.translate("MainWindow", u"50", None))
self.pushButton_25.setText(QCoreApplication.translate("MainWindow", u"60", None))
self.pushButton_26.setText(QCoreApplication.translate("MainWindow", u"\u81ea\u5b9a\u4e49", None))
self.label_j1_min.setText(QCoreApplication.translate("MainWindow", u"-10", None))
self.label_j1_max.setText(QCoreApplication.translate("MainWindow", u"+10", None))
self.label_j2_min.setText(QCoreApplication.translate("MainWindow", u"-150", None))
@ -759,8 +846,7 @@ class Ui_MainWindow(object):
self.pushButton_36.setText("")
self.pushButton_37.setText("")
self.pushButton_38.setText("")
self.lineEdit.setText(QCoreApplication.translate("MainWindow", u"123", None))
self.textEdit.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
self.textEdit_log.setHtml(QCoreApplication.translate("MainWindow", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
@ -773,14 +859,28 @@ class Ui_MainWindow(object):
self.comboBox_lineIndex.setItemText(1, QCoreApplication.translate("MainWindow", u"\u65b0\u5efa\u7ebf", None))
self.comboBox_lineIndex.setCurrentText(QCoreApplication.translate("MainWindow", u"1\u53f7\u7ebf", None))
self.pushButton_num5.setText(QCoreApplication.translate("MainWindow", u"50", None))
self.pushButton_num1.setText(QCoreApplication.translate("MainWindow", u"10", None))
self.pushButton_num6.setText(QCoreApplication.translate("MainWindow", u"60", None))
self.pushButton_num3.setText(QCoreApplication.translate("MainWindow", u"30", None))
self.pushButton_num4.setText(QCoreApplication.translate("MainWindow", u"40", None))
self.pushButton_num_free.setText(QCoreApplication.translate("MainWindow", u"\u81ea\u5b9a\u4e49", None))
self.pushButton_num2.setText(QCoreApplication.translate("MainWindow", u"20", None))
self.lineEdit_num.setText(QCoreApplication.translate("MainWindow", u"123", None))
self.pushButton_AddNum.setText(QCoreApplication.translate("MainWindow", u"\u8865\u4e00\u888b", None))
self.pushButton_SubNum.setText(QCoreApplication.translate("MainWindow", u"\u6263\u4e00\u888b", None))
self.pushButton_16.setText(QCoreApplication.translate("MainWindow", u"\u6025\u505c", None))
self.pushButton_18.setText(QCoreApplication.translate("MainWindow", u"\u6545\u969c\u8bca\u65ad", None))
self.pushButton_19.setText(QCoreApplication.translate("MainWindow", u"\u8c03\u8bd5", None))
self.pushButton_startFeed.setText(QCoreApplication.translate("MainWindow", u"\u542f\u52a8", None))
self.pushButton_39.setText(QCoreApplication.translate("MainWindow", u"\u590d\u4f4d", None))
self.pushButton_reset.setText(QCoreApplication.translate("MainWindow", u"\u590d\u4f4d", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("MainWindow", u"\u6295\u6599", None))
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("MainWindow", u"Tab 2", None))
self.label_date.setText(QCoreApplication.translate("MainWindow", u"2024-08-01", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"\u8bbe\u5907\u72b6\u6001\u76d1\u63a7", None))
self.label_connect_status.setText("")
self.label_6.setText(QCoreApplication.translate("MainWindow", u"\u901a\u4fe1\u72b6\u6001", None))
# retranslateUi

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>901</width>
<height>656</height>
<height>665</height>
</rect>
</property>
<property name="windowTitle">
@ -20,32 +20,11 @@
<enum>Qt::ToolButtonStyle::ToolButtonIconOnly</enum>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QLabel" name="label">
<widget class="QLabel" name="label_time">
<property name="geometry">
<rect>
<x>30</x>
<y>613</y>
<width>261</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color:#fff;
font: 290 12pt &quot;Microsoft YaHei&quot;;
font: 700 12pt &quot;Microsoft YaHei UI&quot;;</string>
</property>
<property name="text">
<string>中联</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>690</x>
<y>610</y>
<x>780</x>
<y>640</y>
<width>91</width>
<height>16</height>
</rect>
@ -59,33 +38,13 @@ font: 700 9pt &quot;Microsoft YaHei UI&quot;;</string>
<string>08:00:00</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>670</x>
<y>630</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color:#5188BE;
font: 290 9pt &quot;Microsoft YaHei&quot;;</string>
</property>
<property name="text">
<string>2024-08-01</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>901</width>
<height>601</height>
<height>631</height>
</rect>
</property>
<property name="styleSheet">
@ -109,9 +68,9 @@ font: 290 9pt &quot;Microsoft YaHei&quot;;</string>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<y>10</y>
<width>877</width>
<height>555</height>
<height>541</height>
</rect>
</property>
<property name="styleSheet">
@ -231,7 +190,7 @@ background-repeat:no-repeat;</string>
</rect>
</property>
<property name="styleSheet">
<string notr="true">QSlider
<string notr="true">/**QSlider
{
background-color: #FFFFFF;
border-style: outset;
@ -254,6 +213,45 @@ QSlider::handle:horizontal
border-radius:5px;
border: 3px solid #007900;
}
**/
/*第一种风格*/
/**
groove表示槽的部分
handle表示滑块
add-page表示未滑过的槽部分
sub-page表示已滑过的槽部分
在辅助控制器后面可以设置状态horizontal就是QSS生效的QSlider的状态
**/
QSlider::groove:horizontal
{
height:10px;
border-radius: 5px;
background-color:rgb(219,219,219);
}
QSlider::handle:horizontal
{
background: QRadialGradient(cx:0, cy:0, radius: 1, fx:0.5, fy:0.5,stop:0 green, stop:1 green);
width: 5px;
height: 5px;
margin: -5px 3px -5px 6px;
border-radius:5px;
border: 3px solid #007900;
}
QSlider::add-page:horizontal
{
border-radius: 5px;
background-color: rgb(219,219,219);
}
QSlider::sub-page:horizontal
{
border-radius: 5px;
background-color: rgb(80,166,234);
}
@ -281,202 +279,6 @@ QSlider::handle:horizontal
<string>10</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_20">
<property name="geometry">
<rect>
<x>520</x>
<y>70</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>10</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_21">
<property name="geometry">
<rect>
<x>590</x>
<y>70</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>20</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_22">
<property name="geometry">
<rect>
<x>660</x>
<y>70</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>30</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_23">
<property name="geometry">
<rect>
<x>730</x>
<y>70</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>40</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_24">
<property name="geometry">
<rect>
<x>520</x>
<y>110</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>50</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_25">
<property name="geometry">
<rect>
<x>590</x>
<y>110</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>60</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_26">
<property name="geometry">
<rect>
<x>660</x>
<y>110</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>自定义</string>
</property>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
@ -1186,29 +988,7 @@ font: 10pt &quot;楷体&quot;;
</property>
</widget>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>730</x>
<y>110</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;</string>
</property>
<property name="text">
<string>123</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<widget class="QTextEdit" name="textEdit_log">
<property name="geometry">
<rect>
<x>10</x>
@ -1286,20 +1066,310 @@ QComboBox QAbstractItemView {
</property>
</item>
</widget>
<zorder>lineEdit</zorder>
<zorder>label_4</zorder>
<zorder>horizontalSlider_feedingNum</zorder>
<zorder>label_5</zorder>
<zorder>pushButton_20</zorder>
<zorder>pushButton_21</zorder>
<zorder>pushButton_22</zorder>
<zorder>pushButton_23</zorder>
<zorder>pushButton_24</zorder>
<zorder>pushButton_25</zorder>
<zorder>pushButton_26</zorder>
<zorder>frame_4</zorder>
<zorder>textEdit</zorder>
<zorder>comboBox_lineIndex</zorder>
<widget class="QStackedWidget" name="stackedWidget_num">
<property name="geometry">
<rect>
<x>510</x>
<y>60</y>
<width>291</width>
<height>91</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_3">
<widget class="QPushButton" name="pushButton_num5">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>50</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num1">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>10</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num6">
<property name="geometry">
<rect>
<x>80</x>
<y>60</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>60</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num3">
<property name="geometry">
<rect>
<x>150</x>
<y>20</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>30</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num4">
<property name="geometry">
<rect>
<x>220</x>
<y>20</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>40</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num_free">
<property name="geometry">
<rect>
<x>150</x>
<y>60</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>自定义</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_num2">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
*{background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;
}
*:hover {
background-color: lightgreen;
color: black;
}*:pressed {
background-color: red;
color: white;
}</string>
</property>
<property name="text">
<string>20</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_num">
<property name="geometry">
<rect>
<x>150</x>
<y>60</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: #F9FAFC;
border: 1px solid #dcdfe6;
border-radius: 10px;
font: 10pt &quot;楷体&quot;;</string>
</property>
<property name="text">
<string>123</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
<zorder>lineEdit_num</zorder>
<zorder>pushButton_num5</zorder>
<zorder>pushButton_num1</zorder>
<zorder>pushButton_num6</zorder>
<zorder>pushButton_num3</zorder>
<zorder>pushButton_num4</zorder>
<zorder>pushButton_num_free</zorder>
<zorder>pushButton_num2</zorder>
</widget>
<widget class="QWidget" name="page_4">
<widget class="QPushButton" name="pushButton_AddNum">
<property name="geometry">
<rect>
<x>30</x>
<y>30</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">*{
background-color: #499C54;
font: 12pt &quot;楷体&quot;;
border: 1px solid #dcdfe6;
border-radius: 10px;
}
*:pressed
{
background-color: #499c8a;
}
</string>
</property>
<property name="text">
<string>补一袋</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListAdd"/>
</property>
</widget>
<widget class="QPushButton" name="pushButton_SubNum">
<property name="geometry">
<rect>
<x>170</x>
<y>30</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">*{
background-color: rgb(255, 0, 0);
font: 12pt &quot;楷体&quot;;
border: 1px solid #dcdfe6;
border-radius: 10px;
}
*:pressed
{
background-color: #499c8a;
}
</string>
</property>
<property name="text">
<string>扣一袋</string>
</property>
<property name="icon">
<iconset theme="QIcon::ThemeIcon::ListRemove"/>
</property>
</widget>
</widget>
</widget>
</widget>
<widget class="QPushButton" name="pushButton_16">
<property name="geometry">
@ -1421,7 +1491,7 @@ background-color: #499c8a;
<iconset theme="QIcon::ThemeIcon::SystemShutdown"/>
</property>
</widget>
<widget class="QPushButton" name="pushButton_39">
<widget class="QPushButton" name="pushButton_reset">
<property name="geometry">
<rect>
<x>460</x>
@ -1489,10 +1559,107 @@ background-color: #FFF000;
</widget>
</widget>
</widget>
<widget class="QLabel" name="label_date">
<property name="geometry">
<rect>
<x>690</x>
<y>640</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color:#fff;
font: 290 9pt &quot;Microsoft YaHei&quot;;
font: 700 9pt &quot;Microsoft YaHei UI&quot;;</string>
</property>
<property name="text">
<string>2024-08-01</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>300</x>
<y>634</y>
<width>301</width>
<height>28</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: #9A9A9A;</string>
</property>
<property name="frameShape">
<enum>QFrame::Shape::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>7</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: #F9FFF9;
font: 700 9pt &quot;等线&quot;;</string>
</property>
<property name="text">
<string>设备状态监控</string>
</property>
</widget>
<widget class="QLabel" name="label_connect_status">
<property name="geometry">
<rect>
<x>220</x>
<y>7</y>
<width>16</width>
<height>16</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
background-color: #A2EF4D; /* 设置背景颜色 */
color: #ffffff; /* 设置字体颜色 */
border-radius: 8px; /* 圆角半径设置为 QLabel 的一半,形成圆形 */
border: 1px solid #A2EF4D; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
}
</string>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>160</x>
<y>7</y>
<width>51</width>
<height>16</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: #F9FFF9;
font: 700 9pt &quot;等线&quot;;</string>
</property>
<property name="text">
<string>通信状态</string>
</property>
</widget>
</widget>
<zorder>tabWidget</zorder>
<zorder>label</zorder>
<zorder>label_2</zorder>
<zorder>label_3</zorder>
<zorder>label_time</zorder>
<zorder>label_date</zorder>
<zorder>frame</zorder>
</widget>
</widget>
<resources>