update 修改qss带来的异常退出

This commit is contained in:
FrankCV2048
2024-11-07 23:14:15 +08:00
parent 5df4e7cadb
commit c8c1db727c
9 changed files with 2355 additions and 152 deletions

View File

@ -24,16 +24,19 @@ class RobotClient(TCPClient):
self.time_delay_shake = time_delay_shake self.time_delay_shake = time_delay_shake
def add_sendQuene(self,command): #后面 命令分等级,紧急命令直接执行 def add_sendQuene(self,command): #后面 命令分等级,紧急命令直接执行
self.command_quene.put(command) self.command_quene.put(command)
return return
def send_Command(self): def send_Command(self):
try: try:
if self.command_quene.qsize()!=0: if self.command_quene.qsize()!=0:
command = self.command_quene.get() command = self.command_quene.get()
self.client_socket.send(command.encode()) self.client_socket.send(command.encode())
if True: if True:
response = self.client_socket.recv(1024).decode('utf-8') response = self.client_socket.recv(1024).decode('utf-8')
# response_message = json.loads(response) # response_message = json.loads(response)
return True return True
else: else:

View File

@ -13,6 +13,7 @@ from Model.RobotModel import CMDInstructRequest, MoveType
from Util.util_time import CRisOrFall from Util.util_time import CRisOrFall
from Vision.camera_coordinate_dete import Detection from Vision.camera_coordinate_dete import Detection
from Util.util_log import log from Util.util_log import log
from Model.RobotModel import Instruction
class FeedStatus(IntEnum): class FeedStatus(IntEnum):
FNone = 0 FNone = 0
@ -90,13 +91,14 @@ class Feeding :
if self.feedConfig == None: if self.feedConfig == None:
self.feedStatus = FeedStatus.FNone self.feedStatus = FeedStatus.FNone
elif self.feedConfig.num == 0: elif self.feedConfig.num == 0:
self.feedStatus = FeedStatus.FNone self.feedStatus = FeedStatus.FNone
if self.feedStatus == FeedStatus.FNone or self.pause: if self.feedStatus == FeedStatus.FNone or self.pause:
return return
elif self.feedStatus == FeedStatus.FStart: elif self.feedStatus == FeedStatus.FStart:
log.log_message(logging.INFO, Constant.str_feed_start) log.log_message(logging.INFO, Constant.str_feed_start)
self.feedStatus = FeedStatus.FCheck self.feedStatus = FeedStatus.FCheck if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
pass pass
elif self.feedStatus == FeedStatus.FCheck: elif self.feedStatus == FeedStatus.FCheck:
log.log_message(logging.INFO, Constant.str_feed_check) log.log_message(logging.INFO, Constant.str_feed_check)
@ -106,7 +108,7 @@ class Feeding :
# pass # pass
# else: # else:
if self.feedConfig.num != 0: if self.feedConfig.num != 0:
self.feedStatus = FeedStatus.FSafeP self.feedStatus = FeedStatus.FSafeP if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
@ -114,7 +116,7 @@ class Feeding :
log.log_message(logging.INFO,Constant.str_feed_safe) log.log_message(logging.INFO,Constant.str_feed_safe)
if self.feedConfig.feedLine.safe_position.compare(real_position): if self.feedConfig.feedLine.safe_position.compare(real_position):
self.error_photo_count=0 self.error_photo_count=0
self.feedStatus = FeedStatus.FPhoto self.feedStatus = FeedStatus.FPhoto if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
#self.sendTargPosition(self.feedConfig.feedLine.photo_position) #self.sendTargPosition(self.feedConfig.feedLine.photo_position)
#判断是哪一个问题 #判断是哪一个问题
@ -173,7 +175,7 @@ class Feeding :
else: else:
self.feedConfig.feedLine.take_position = detect_pos_list[max_z_index] self.feedConfig.feedLine.take_position = detect_pos_list[max_z_index]
log.log_message(logging.INFO, Constant.str_feed_takePhoto_line) log.log_message(logging.INFO, Constant.str_feed_takePhoto_line)
self.feedStatus = FeedStatus.FTake self.feedStatus = FeedStatus.FTake if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.take_position) self.sendTargPosition(self.feedConfig.feedLine.take_position)
except: except:
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail) log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
@ -181,7 +183,7 @@ class Feeding :
else: else:
self.feedConfig.feedLine.take_position = self.feedConfig.feedLine.safe_position self.feedConfig.feedLine.take_position = self.feedConfig.feedLine.safe_position
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
self.feedStatus = FeedStatus.FTake self.feedStatus = FeedStatus.FTake if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
log.log_message(logging.INFO, Constant.str_feed_takePhoto_move) log.log_message(logging.INFO, Constant.str_feed_takePhoto_move)
elif self.feedStatus == FeedStatus.FTake: elif self.feedStatus == FeedStatus.FTake:
@ -193,15 +195,17 @@ class Feeding :
self.sendIOControl(self.robotClient.con_ios[2],1) self.sendIOControl(self.robotClient.con_ios[2],1)
# TODO 检测是否通 不然报警 # TODO 检测是否通 不然报警
time.sleep(self.robotClient.time_delay_take) time.sleep(self.robotClient.time_delay_take)
self.feedStatus = FeedStatus.FSafeF self.feedStatus = FeedStatus.FSafeF if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
log.log_message(logging.INFO, Constant.str_feed_take_success) log.log_message(logging.INFO, Constant.str_feed_take_success)
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
pass pass
elif self.feedStatus == FeedStatus.FSafeF: elif self.feedStatus == FeedStatus.FSafeF:
log.log_message(logging.INFO, Constant.str_feed_mid) log.log_message(logging.INFO, Constant.str_feed_safe)
if self.feedConfig.feedLine.safe_position.compare(real_position): if self.feedConfig.feedLine.safe_position.compare(real_position):
self.feedStatus = FeedStatus.FBroken self.feedStatus = FeedStatus.FBroken if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.broken1_position) self.sendTargPosition(self.feedConfig.feedLine.broken1_position)
pass #吸嘴开始 pass #吸嘴开始
@ -213,7 +217,9 @@ class Feeding :
# pass #破袋 # pass #破袋
elif self.feedStatus==FeedStatus.FBroken: elif self.feedStatus==FeedStatus.FBroken:
log.log_message(logging.INFO, Constant.str_feed_broken) log.log_message(logging.INFO, Constant.str_feed_broken)
if self.feedConfig.feedLine.broken1_position.compare(real_position): if self.feedConfig.feedLine.broken1_position.compare(real_position):
self.sendTargPosition(self.feedConfig.feedLine.broken2_position) self.sendTargPosition(self.feedConfig.feedLine.broken2_position)
if self.feedConfig.feedLine.broken2_position.compare(real_position): if self.feedConfig.feedLine.broken2_position.compare(real_position):
@ -221,7 +227,7 @@ class Feeding :
if self.feedConfig.feedLine.shake_position.compare(real_position): # 延迟判断如果最后点位延迟1s则认为阶段完成 if self.feedConfig.feedLine.shake_position.compare(real_position): # 延迟判断如果最后点位延迟1s则认为阶段完成
# TODO 震动方案 # TODO 震动方案
time.sleep(self.robotClient.time_delay_shake) time.sleep(self.robotClient.time_delay_shake)
self.feedStatus = FeedStatus.FDropBag self.feedStatus = FeedStatus.FDropBag if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
elif self.feedStatus == FeedStatus.FDropBag: elif self.feedStatus == FeedStatus.FDropBag:
@ -243,7 +249,7 @@ class Feeding :
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
self.init_detection_image() self.init_detection_image()
else: else:
self.feedStatus = FeedStatus.FSafeP self.feedStatus = FeedStatus.FSafeP if self.feedStatus != FeedStatus.FNone else FeedStatus.FNone
self.sendTargPosition(self.feedConfig.feedLine.safe_position) self.sendTargPosition(self.feedConfig.feedLine.safe_position)
@ -254,7 +260,7 @@ class Feeding :
self.sendIOControl(Constant.IO_EmergencyPoint, 0) self.sendIOControl(Constant.IO_EmergencyPoint, 0)
def sendIOControl(self,IO_bit,IO_Status:int): def sendIOControl(self,IO_bit,IO_Status:int):
from Model.RobotModel import Instruction
IO_command = CMDInstructRequest() IO_command = CMDInstructRequest()
io_instruction = Instruction() io_instruction = Instruction()
io_instruction.IO = True io_instruction.IO = True
@ -263,10 +269,10 @@ class Feeding :
IO_command.dsID = 'HCRemoteCommand' IO_command.dsID = 'HCRemoteCommand'
IO_command.instructions.append(io_instruction) IO_command.instructions.append(io_instruction)
self.robotClient.add_sendQuene(IO_command.toString()) self.robotClient.add_sendQuene(IO_command.toString())
log.log_message(logging.INFO, f'{Constant.str_feed_io_control}{IO_bit}{IO_Status}')
pass pass
def sendTargPosition(self,real_position,move_type:MoveType=MoveType.WORLD ,speed = Constant.speed): def sendTargPosition(self,real_position,move_type:MoveType=MoveType.WORLD ,speed = Constant.speed):
from Model.RobotModel import Instruction
position_instruction = Instruction() position_instruction = Instruction()
position_instruction.speed = speed position_instruction.speed = speed
position_instruction.m0 = real_position.X position_instruction.m0 = real_position.X
@ -279,7 +285,7 @@ class Feeding :
instruction_command = CMDInstructRequest() instruction_command = CMDInstructRequest()
instruction_command.instructions.append(position_instruction) instruction_command.instructions.append(position_instruction)
request_command = instruction_command.toString() request_command = instruction_command.toString()
print(request_command)
log_str = f'移动到位置:{"姿势直线"}' \ log_str = f'移动到位置:{"姿势直线"}' \
f'X:{position_instruction.m0}-' \ f'X:{position_instruction.m0}-' \
@ -288,7 +294,12 @@ class Feeding :
f'U:{position_instruction.m3}-' \ f'U:{position_instruction.m3}-' \
f'V:{position_instruction.m4}-' \ f'V:{position_instruction.m4}-' \
f'W:{position_instruction.m5}' f'W:{position_instruction.m5}'
log.log_message(logging.INFO, log_str)
try :
log.log_message(logging.INFO, log_str)
except:
print("error")
self.robotClient.add_sendQuene(request_command) self.robotClient.add_sendQuene(request_command)
pass pass

View File

@ -49,6 +49,7 @@ str_feed_feed_num = '剩余投料次数:'
str_feed_zip_bag = '移动到压缩袋位置' str_feed_zip_bag = '移动到压缩袋位置'
str_feed_photo_error_msgbox = '请重新摆放料带后再关闭此窗口' str_feed_photo_error_msgbox = '请重新摆放料带后再关闭此窗口'
str_feed_photo_confirm = '确认摆好' str_feed_photo_confirm = '确认摆好'
str_feed_io_control = '发送IO控制: '
str_sys_start = '进入系统' str_sys_start = '进入系统'
str_sys_exit = '退出系统' str_sys_exit = '退出系统'
str_sys_switch_tool = '切换到工具坐标' str_sys_switch_tool = '切换到工具坐标'

View File

@ -996,7 +996,7 @@ font: 9pt "楷体";
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 5px; border-radius: 5px;
} }
*:pressed *:disabled
{ {
background-color: #ff6e00; background-color: #ff6e00;
} }
@ -1017,9 +1017,18 @@ background-color: #ff6e00;
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0); <string notr="true">
QLabel:disabled{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: red;
}
QLabel{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;; font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color:#7A7A7A;</string> color:#7A7A7A;
}</string>
</property> </property>
<property name="text"> <property name="text">
<string>取料中...</string> <string>取料中...</string>
@ -1039,12 +1048,12 @@ color:#7A7A7A;</string>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">*{ <string notr="true">*{
background-color: rgb(255, 0, 0); background-color: #7A7A7A;
font: 9pt &quot;楷体&quot;; font: 9pt &quot;楷体&quot;;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 5px; border-radius: 5px;
} }
*:pressed *:disabled
{ {
background-color: #ff6e00; background-color: #ff6e00;
} }
@ -1065,9 +1074,18 @@ background-color: #ff6e00;
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0); <string notr="true">
QLabel:disabled{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: red;
}
QLabel{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;; font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: red;</string> color:#7A7A7A;
}</string>
</property> </property>
<property name="text"> <property name="text">
<string>拍照中...</string> <string>拍照中...</string>
@ -1087,12 +1105,12 @@ color: red;</string>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">*{ <string notr="true">*{
background-color: rgb(255, 0, 0); background-color: #7A7A7A;
font: 9pt &quot;楷体&quot;; font: 9pt &quot;楷体&quot;;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 5px; border-radius: 5px;
} }
*:pressed *:disabled
{ {
background-color: #ff6e00; background-color: #ff6e00;
} }
@ -1113,9 +1131,18 @@ background-color: #ff6e00;
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0); <string notr="true">
QLabel:disabled{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: red;
}
QLabel{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;; font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: black;</string> color:#7A7A7A;
}</string>
</property> </property>
<property name="text"> <property name="text">
<string>抓料中...</string> <string>抓料中...</string>
@ -1135,12 +1162,12 @@ color: black;</string>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">*{ <string notr="true">*{
background-color: rgb(255, 0, 0); background-color: #7A7A7A;
font: 9pt &quot;楷体&quot;; font: 9pt &quot;楷体&quot;;
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
border-radius: 5px; border-radius: 5px;
} }
*:pressed *:disabled
{ {
background-color: #ff6e00; background-color: #ff6e00;
} }
@ -1161,9 +1188,18 @@ background-color: #ff6e00;
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">background-color: rgba(255, 255, 255, 0); <string notr="true">
QLabel:disabled{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: red;
}
QLabel{
background-color: rgba(255, 255, 255, 0);
font: 700 12pt &quot;Microsoft YaHei UI&quot;; font: 700 12pt &quot;Microsoft YaHei UI&quot;;
color: black;</string> color:#7A7A7A;
}</string>
</property> </property>
<property name="text"> <property name="text">
<string>投料中...</string> <string>投料中...</string>
@ -1473,6 +1509,13 @@ font: 700 9pt &quot;Microsoft YaHei UI&quot;;</string>
border: 1px solid #A2EF4D; /* 设置边框颜色和宽度 */ border: 1px solid #A2EF4D; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */ qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
} }
QLabel:disabled{
background-color: #FD3251;
color: #ffffff;
border-radius: 8px;
border: 1px solid #FD3251;
qproperty-alignment: 'AlignCenter';
}
</string> </string>
</property> </property>
<property name="text"> <property name="text">
@ -5061,7 +5104,12 @@ color:#ffffff
</sizepolicy> </sizepolicy>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string> <string notr="true">color: rgb(255, 255, 255);
border: 1px solid #dcdfe6;
font: 8pt &quot;Microsoft YaHei UI&quot;;</string>
</property>
<property name="placeholderText">
<string>自定义数量</string>
</property> </property>
</widget> </widget>
</item> </item>

File diff suppressed because it is too large Load Diff

View File

@ -47,13 +47,13 @@ photo_v5 = 0.0
photo_w5 = 1.0 photo_w5 = 1.0
linecount = 2 linecount = 2
remain_linename = 1 remain_linename = 1
remain_count = 0 remain_count = 477
solenoid_valve1_addr = 3 solenoid_valve1_addr = 3
solenoid_valve2_addr = 2 solenoid_valve2_addr = 2
solenoid_valve3_addr = 10 solenoid_valve3_addr = 10
takedelay = 2 takedelay = 0.2
putdelay = 1 putdelay = 0.1
shakedelay = 1 shakedelay = 1.0
[Camera_Feed] [Camera_Feed]
ipaddress = 127.0.0.1 ipaddress = 127.0.0.1

View File

@ -36,24 +36,36 @@ class Logger:
text_edit_handler_warning.setFormatter(formatter_warning) text_edit_handler_warning.setFormatter(formatter_warning)
self.logger_textEdit_warning.addHandler(text_edit_handler_warning) self.logger_textEdit_warning.addHandler(text_edit_handler_warning)
handler = TimedRotatingFileHandler(file_path, when="D", interval=1, backupCount=30) handler = TimedRotatingFileHandler(file_path, when='D', interval=1, backupCount=30)
handler.suffix = "%Y-%m-%d"
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
handler.setFormatter(formatter) handler.setFormatter(formatter)
self.logger_file_info.addHandler(handler) self.logger_file_info.addHandler(handler)
def log_message(self,level,message): def log_message(self,level,message):
if message != self.pre_message: try:
self.pre_message = message
else: if message != self.pre_message:
return
if level == logging.INFO: self.pre_message = message
self.logger_textEdit_info.info(message) else:
self.logger_file_info.info(message)
if level == logging.ERROR: return
self.logger_textEdit_info.error(message)
self.logger_file_info.error(message) if level == logging.INFO:
self.logger_textEdit_warning.error(message)
if level == logging.WARNING: self.logger_textEdit_info.info(message)
self.logger_file_info.warning(message)
self.logger_file_info.info(message)
if level == logging.ERROR:
self.logger_textEdit_info.error(message)
self.logger_file_info.error(message)
self.logger_textEdit_warning.error(message)
if level == logging.WARNING:
self.logger_file_info.warning(message)
except Exception as e:
print(e)

158
main.py
View File

@ -4,10 +4,10 @@ import logging
import queue import queue
import sys import sys
from multiprocessing import Process from multiprocessing import Process
import traceback
from PyQt5.uic.properties import QtWidgets from PyQt5.uic.properties import QtWidgets
from PySide6 import QtCore from PySide6 import QtCore
from PySide6.QtCore import QThread, Signal, Slot, QObject, QEvent from PySide6.QtCore import QThread, Signal, Slot, QObject, QEvent, QTimer
from PySide6.QtGui import QIntValidator, QStandardItemModel, QStandardItem, Qt, QMovie, QIcon from PySide6.QtGui import QIntValidator, QStandardItemModel, QStandardItem, Qt, QMovie, QIcon
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QHeaderView, QTableWidget, \ from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QHeaderView, QTableWidget, \
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox, QSizePolicy QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox, QSizePolicy
@ -21,6 +21,7 @@ import Constant
from CU.Command import FeedCommand from CU.Command import FeedCommand
from CU.Feeding import FeedLine, FeedingConfig, Feeding, FeedStatus from CU.Feeding import FeedLine, FeedingConfig, Feeding, FeedStatus
from Util.util_log import QTextEditLogger from Util.util_log import QTextEditLogger
from Util.util_time import CRisOrFall
from Vision.camera_coordinate_dete import Detection from Vision.camera_coordinate_dete import Detection
from COM.COM_Robot import RobotClient from COM.COM_Robot import RobotClient
from Expection import Error_Code from Expection import Error_Code
@ -158,58 +159,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def init_qss(self): def init_qss(self):
self.active_status_Qss = """ pass
background-color: #A2EF4D;
color: #ffffff;
border-radius: 8px;
border: 1px solid #A2EF4D;
qproperty-alignment: 'AlignCenter';
"""
self.noActive_status_Qss = """
background-color: #FD3251;
color: #ffffff;
border-radius: 8px;
border: 1px solid #FD3251;
qproperty-alignment: 'AlignCenter';
"""
self.active_label_sign_Qss = """
background-color: rgba(255, 255, 255, 0);
font: 700 12pt "Microsoft YaHei UI";
color: red;
"""
self.active_btn_sign_Qss = """
background-color: rgb(255, 0, 0);
font: 9pt "楷体";
border: 1px solid #dcdfe6;
border-radius: 5px;
"""
self.noactive_label_sign_Qss = """
background-color: rgba(255, 255, 255, 0);
font: 700 12pt "Microsoft YaHei UI";
color: #7A7A7A;
"""
self.noactive_btn_sign_Qss = """
background-color: #7A7A7A;
font: 9pt "楷体";
border: 1px solid #dcdfe6;
border-radius: 5px;
"""
def init_log(self): def init_log(self):
log.init_log(self.textEdit_log_info, self.textEdit_log_error, Constant.log_file_path) log.init_log(self.textEdit_log_info, self.textEdit_log_error, Constant.log_file_path)
@ -334,9 +284,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
solenoid_valve1_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve1_addr')) solenoid_valve1_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve1_addr'))
solenoid_valve2_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve2_addr')) solenoid_valve2_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve2_addr'))
solenoid_valve3_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve3_addr')) solenoid_valve3_addr = int(self.configReader.get('Robot_Feed', 'solenoid_valve3_addr'))
time_delay_take = int(self.configReader.get('Robot_Feed', 'takeDelay')) time_delay_take = float(self.configReader.get('Robot_Feed', 'takeDelay'))
time_delay_put = int(self.configReader.get('Robot_Feed', 'putDelay')) time_delay_put = float(self.configReader.get('Robot_Feed', 'putDelay'))
time_delay_shake = int(self.configReader.get('Robot_Feed', 'shakeDelay')) time_delay_shake = float(self.configReader.get('Robot_Feed', 'shakeDelay'))
#TODO #TODO
#dropDelay_time = int(self.configReader.get('Robot_Feed', 'dropDelay_time')) #dropDelay_time = int(self.configReader.get('Robot_Feed', 'dropDelay_time'))
self.robotClient = RobotClient(ip, port, photo_locs, self.command_position_quene, self.status_address,[solenoid_valve1_addr, solenoid_valve2_addr, solenoid_valve3_addr],time_delay_take,time_delay_put,time_delay_shake) self.robotClient = RobotClient(ip, port, photo_locs, self.command_position_quene, self.status_address,[solenoid_valve1_addr, solenoid_valve2_addr, solenoid_valve3_addr],time_delay_take,time_delay_put,time_delay_shake)
@ -562,7 +512,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.main_UI_threading = Thread(target=self.updateUI) self.main_UI_threading = Thread(target=self.updateUI)
self.main_UI_threading.start() self.main_UI_threading.start()
self.check_continue()
pass pass
def check_continue(self): def check_continue(self):
if self.remain_Count!=0: if self.remain_Count!=0:
@ -576,6 +526,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
remain_messageBox.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel) remain_messageBox.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel)
result = remain_messageBox.exec() result = remain_messageBox.exec()
if result == QMessageBox.StandardButton.Cancel: if result == QMessageBox.StandardButton.Cancel:
self.remain_Count = 0
return return
self.configReader.read(Constant.feedLine_set_file, encoding='utf-8') self.configReader.read(Constant.feedLine_set_file, encoding='utf-8')
line_name = self.configReader.get(key, 'name') line_name = self.configReader.get(key, 'name')
@ -636,6 +587,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.command_quene.put(FeedCommand(FeedingConfig(num, self.feedLine_dict[line_head], self.feeding.robotClient.photo_locs[:]))) self.command_quene.put(FeedCommand(FeedingConfig(num, self.feedLine_dict[line_head], self.feeding.robotClient.photo_locs[:])))
self.stackedWidget_num.setCurrentIndex(1) self.stackedWidget_num.setCurrentIndex(1)
self.set_run_status_button(True) self.set_run_status_button(True)
self.feeding.pause = False
log.log_message(logging.INFO, f'{self.feedLine_dict[line_head].name}:{Constant.str_feed_start}') log.log_message(logging.INFO, f'{self.feedLine_dict[line_head].name}:{Constant.str_feed_start}')
def send_num_button_click(self): def send_num_button_click(self):
@ -724,6 +676,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.label_maxNum.setText(str(max_num)) self.label_maxNum.setText(str(max_num))
def send_custom_num_returnPressed(self): def send_custom_num_returnPressed(self):
if self.lineEdit_num.text()== '' or not self.lineEdit_num.text().isdigit():
return
self.horizontalSlider_feedingNum.setMaximum(int(self.lineEdit_num.text())) self.horizontalSlider_feedingNum.setMaximum(int(self.lineEdit_num.text()))
self.horizontalSlider_feedingNum.setValue(0) self.horizontalSlider_feedingNum.setValue(0)
self.label_maxNum.setText(self.lineEdit_num.text()) self.label_maxNum.setText(self.lineEdit_num.text())
@ -761,9 +715,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
solenoid1_addr = int(self.lineEdit_solenoid1_addr.text()) solenoid1_addr = int(self.lineEdit_solenoid1_addr.text())
solenoid2_addr = int(self.lineEdit_solenoid2_addr.text()) solenoid2_addr = int(self.lineEdit_solenoid2_addr.text())
solenoid3_addr = int(self.lineEdit_solenoid3_addr.text()) solenoid3_addr = int(self.lineEdit_solenoid3_addr.text())
time_delay_take = int(self.lineEdit_timedelay_take.text()) time_delay_take = float(self.lineEdit_timedelay_take.text())
time_delay_put = int(self.lineEdit_timedelay_put.text()) time_delay_put = float(self.lineEdit_timedelay_put.text())
time_delay_shake = int(self.lineEdit_timedelay_shake.text()) time_delay_shake = float(self.lineEdit_timedelay_shake.text())
self.robotClient.con_ios[0] = solenoid1_addr self.robotClient.con_ios[0] = solenoid1_addr
self.robotClient.con_ios[1] = solenoid2_addr self.robotClient.con_ios[1] = solenoid2_addr
self.robotClient.con_ios[2] = solenoid3_addr self.robotClient.con_ios[2] = solenoid3_addr
@ -882,6 +836,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.feeding.feedStatus = FeedStatus.FNone self.feeding.feedStatus = FeedStatus.FNone
# 清空运行命令 # 清空运行命令
self.send_clear_auto_command() self.send_clear_auto_command()
self.feeding.feedConfig.num = 0
log.log_message(logging.INFO, Constant.str_feed_stop) log.log_message(logging.INFO, Constant.str_feed_stop)
def send_pauseFeed_button_click(self): def send_pauseFeed_button_click(self):
@ -1077,6 +1032,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.label_status_remoteCmdLen.setText(str(self.robotClient.status_model.RemoteCmdLen)) self.label_status_remoteCmdLen.setText(str(self.robotClient.status_model.RemoteCmdLen))
if self.robotClient.status_model.curAlarm != 0: if self.robotClient.status_model.curAlarm != 0:
log.log_message(logging.ERROR, Constant.str_sys_log_alarm_error+str(self.robotClient.status_model.curAlarm)) log.log_message(logging.ERROR, Constant.str_sys_log_alarm_error+str(self.robotClient.status_model.curAlarm))
self.feeding.pause = True
self.label_status_alarmcode.setText(str(self.robotClient.status_model.curAlarm)) self.label_status_alarmcode.setText(str(self.robotClient.status_model.curAlarm))
self.label_status_toolIndex.setText(str(self.robotClient.status_model.toolCoord)) self.label_status_toolIndex.setText(str(self.robotClient.status_model.toolCoord))
self.label_status_speed.setText(str(self.robotClient.status_model.curSpeed_n)) self.label_status_speed.setText(str(self.robotClient.status_model.curSpeed_n))
@ -1153,34 +1109,33 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def set_label_status_style(self, connected: bool): def set_label_status_style(self, connected: bool):
#return
if connected: if connected and not self.label_connect_status.isEnabled():
if self.label_connect_status.styleSheet().strip() != self.active_status_Qss: self.label_connect_status.setEnabled(True)
self.label_connect_status.setStyleSheet(self.active_status_Qss) if not connected and self.label_connect_status.isEnabled():
self.active_status_Qss = self.label_connect_status.styleSheet().strip() self.label_connect_status.setDisabled(True)
else:
if self.label_connect_status.styleSheet().strip() != self.noActive_status_Qss:
self.label_connect_status.setStyleSheet(self.noActive_status_Qss)
self.noActive_status_Qss = self.label_connect_status.styleSheet().strip()
def set_sign_status(self,label,btn,signed:bool): def set_sign_status(self,label,btn,signed:bool):
#return
try : try :
if signed: if signed and label.isEnabled():
if label.styleSheet().strip() != self.active_label_sign_Qss: label.setDisabled(True)
label.setStyleSheet(self.active_label_sign_Qss) btn.setDisabled(True)
self.active_label_sign_Qss = label.styleSheet().strip() # if label.styleSheet().strip() != self.active_label_sign_Qss:
# label.setStyleSheet(self.active_label_sign_Qss)
if btn.styleSheet().strip() != self.active_btn_sign_Qss: # self.active_label_sign_Qss = label.styleSheet().strip()
btn.setStyleSheet(self.active_btn_sign_Qss) #
self.active_btn_sign_Qss = btn.styleSheet().strip() # if btn.styleSheet().strip() != self.active_btn_sign_Qss:
else: # btn.setStyleSheet(self.active_btn_sign_Qss)
if label.styleSheet().strip() != self.noactive_label_sign_Qss: # self.active_btn_sign_Qss = btn.styleSheet().strip()
label.setStyleSheet(self.noactive_label_sign_Qss) if not signed and not label.isEnabled():
self.noactive_label_sign_Qss = label.styleSheet().strip() label.setEnabled(True)
if btn.styleSheet().strip() != self.noactive_btn_sign_Qss: btn.setEnabled(True)
btn.setStyleSheet(self.noactive_btn_sign_Qss) # if label.styleSheet().strip() != self.noactive_label_sign_Qss:
self.noactive_btn_sign_Qss = btn.styleSheet().strip() # label.setStyleSheet(self.noactive_label_sign_Qss)
# self.noactive_label_sign_Qss = label.styleSheet().strip()
# if btn.styleSheet().strip() != self.noactive_btn_sign_Qss:
# btn.setStyleSheet(self.noactive_btn_sign_Qss)
# self.noactive_btn_sign_Qss = btn.styleSheet().strip()
except Exception as e: except Exception as e:
print(e) print(e)
@ -1530,6 +1485,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.feeding.sendIOControl(index-1, 0) self.feeding.sendIOControl(index-1, 0)
log.log_message(logging.INFO, f'关闭IO{index}') log.log_message(logging.INFO, f'关闭IO{index}')
def showEvent(self, event):
super().showEvent(event)
QTimer.singleShot(2000, self.check_continue)
def closeEvent(self, event): def closeEvent(self, event):
self.record_remain_num() self.record_remain_num()
self.detection.release() self.detection.release()
@ -1548,10 +1508,32 @@ class MainWindow(QMainWindow, Ui_MainWindow):
except: except:
log.log_message(logging.ERROR, Constant.str_sys_log_feedNum) log.log_message(logging.ERROR, Constant.str_sys_log_feedNum)
class MyApplication(QApplication):
def __init__(self, argv):
super().__init__(argv)
def notify(self, receiver, event):
try:
return super().notify(receiver, event)
except Exception as e:
log.log_message(logging.ERROR, e)
# 可以在这里记录日志或者执行其他操作
return False
def handle_exception(exc_type, exc_value, exc_tb):
if issubclass(exc_type, KeyboardInterrupt):
log.log_message(logging.INFO, "用户主动退出程序")
return
log.log_message(logging.ERROR, exc_value)
print("未处理的异常:", exc_type, exc_value)
traceback.print_exception(exc_type, exc_value, exc_tb)
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication(sys.argv) app = MyApplication(sys.argv)
window = MainWindow() window = MainWindow()
window.show() window.show()
sys.excepthook = handle_exception # 你的 PySide 应用程序代码 pass
sys.exit(app.exec()) sys.exit(app.exec())

View File

@ -616,7 +616,7 @@ class Ui_MainWindow(object):
"border: 1px solid #dcdfe6;\n" "border: 1px solid #dcdfe6;\n"
"border-radius: 5px;\n" "border-radius: 5px;\n"
"}\n" "}\n"
"*:pressed\n" "*:disabled\n"
"{\n" "{\n"
"background-color: #ff6e00;\n" "background-color: #ff6e00;\n"
"}\n" "}\n"
@ -629,9 +629,18 @@ class Ui_MainWindow(object):
self.label_sign_go.setObjectName(u"label_sign_go") self.label_sign_go.setObjectName(u"label_sign_go")
sizePolicy1.setHeightForWidth(self.label_sign_go.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.label_sign_go.sizePolicy().hasHeightForWidth())
self.label_sign_go.setSizePolicy(sizePolicy1) self.label_sign_go.setSizePolicy(sizePolicy1)
self.label_sign_go.setStyleSheet(u"background-color: rgba(255, 255, 255, 0);\n" self.label_sign_go.setStyleSheet(u"\n"
"QLabel:disabled{\n"
" background-color: rgba(255, 255, 255, 0);\n"
" font: 700 12pt \"Microsoft YaHei UI\";\n"
" color: red;\n"
"}\n"
"\n"
"QLabel{\n"
"background-color: rgba(255, 255, 255, 0);\n"
"font: 700 12pt \"Microsoft YaHei UI\";\n" "font: 700 12pt \"Microsoft YaHei UI\";\n"
"color:#7A7A7A;") "color:#7A7A7A;\n"
"}")
self.label_sign_go.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter) self.label_sign_go.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout_4.addWidget(self.label_sign_go, 0, 1, 1, 1) self.gridLayout_4.addWidget(self.label_sign_go, 0, 1, 1, 1)
@ -641,12 +650,12 @@ class Ui_MainWindow(object):
sizePolicy1.setHeightForWidth(self.pushButton_sign_photo.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.pushButton_sign_photo.sizePolicy().hasHeightForWidth())
self.pushButton_sign_photo.setSizePolicy(sizePolicy1) self.pushButton_sign_photo.setSizePolicy(sizePolicy1)
self.pushButton_sign_photo.setStyleSheet(u"*{\n" self.pushButton_sign_photo.setStyleSheet(u"*{\n"
"background-color: rgb(255, 0, 0);\n" "background-color: #7A7A7A;\n"
"font: 9pt \"\u6977\u4f53\";\n" "font: 9pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n" "border: 1px solid #dcdfe6;\n"
"border-radius: 5px;\n" "border-radius: 5px;\n"
"}\n" "}\n"
"*:pressed\n" "*:disabled\n"
"{\n" "{\n"
"background-color: #ff6e00;\n" "background-color: #ff6e00;\n"
"}\n" "}\n"
@ -659,9 +668,18 @@ class Ui_MainWindow(object):
self.label_sign_photo.setObjectName(u"label_sign_photo") self.label_sign_photo.setObjectName(u"label_sign_photo")
sizePolicy1.setHeightForWidth(self.label_sign_photo.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.label_sign_photo.sizePolicy().hasHeightForWidth())
self.label_sign_photo.setSizePolicy(sizePolicy1) self.label_sign_photo.setSizePolicy(sizePolicy1)
self.label_sign_photo.setStyleSheet(u"background-color: rgba(255, 255, 255, 0);\n" self.label_sign_photo.setStyleSheet(u"\n"
"QLabel:disabled{\n"
" background-color: rgba(255, 255, 255, 0);\n"
" font: 700 12pt \"Microsoft YaHei UI\";\n"
" color: red;\n"
"}\n"
"\n"
"QLabel{\n"
"background-color: rgba(255, 255, 255, 0);\n"
"font: 700 12pt \"Microsoft YaHei UI\";\n" "font: 700 12pt \"Microsoft YaHei UI\";\n"
"color: red;") "color:#7A7A7A;\n"
"}")
self.label_sign_photo.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter) self.label_sign_photo.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout_4.addWidget(self.label_sign_photo, 0, 3, 1, 1) self.gridLayout_4.addWidget(self.label_sign_photo, 0, 3, 1, 1)
@ -671,12 +689,12 @@ class Ui_MainWindow(object):
sizePolicy1.setHeightForWidth(self.pushButton_sign_take.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.pushButton_sign_take.sizePolicy().hasHeightForWidth())
self.pushButton_sign_take.setSizePolicy(sizePolicy1) self.pushButton_sign_take.setSizePolicy(sizePolicy1)
self.pushButton_sign_take.setStyleSheet(u"*{\n" self.pushButton_sign_take.setStyleSheet(u"*{\n"
"background-color: rgb(255, 0, 0);\n" "background-color: #7A7A7A;\n"
"font: 9pt \"\u6977\u4f53\";\n" "font: 9pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n" "border: 1px solid #dcdfe6;\n"
"border-radius: 5px;\n" "border-radius: 5px;\n"
"}\n" "}\n"
"*:pressed\n" "*:disabled\n"
"{\n" "{\n"
"background-color: #ff6e00;\n" "background-color: #ff6e00;\n"
"}\n" "}\n"
@ -689,9 +707,18 @@ class Ui_MainWindow(object):
self.label_sign_take.setObjectName(u"label_sign_take") self.label_sign_take.setObjectName(u"label_sign_take")
sizePolicy1.setHeightForWidth(self.label_sign_take.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.label_sign_take.sizePolicy().hasHeightForWidth())
self.label_sign_take.setSizePolicy(sizePolicy1) self.label_sign_take.setSizePolicy(sizePolicy1)
self.label_sign_take.setStyleSheet(u"background-color: rgba(255, 255, 255, 0);\n" self.label_sign_take.setStyleSheet(u"\n"
"QLabel:disabled{\n"
" background-color: rgba(255, 255, 255, 0);\n"
" font: 700 12pt \"Microsoft YaHei UI\";\n"
" color: red;\n"
"}\n"
"\n"
"QLabel{\n"
"background-color: rgba(255, 255, 255, 0);\n"
"font: 700 12pt \"Microsoft YaHei UI\";\n" "font: 700 12pt \"Microsoft YaHei UI\";\n"
"color: black;") "color:#7A7A7A;\n"
"}")
self.label_sign_take.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter) self.label_sign_take.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout_4.addWidget(self.label_sign_take, 0, 5, 1, 1) self.gridLayout_4.addWidget(self.label_sign_take, 0, 5, 1, 1)
@ -701,12 +728,12 @@ class Ui_MainWindow(object):
sizePolicy1.setHeightForWidth(self.pushButton_sign_feed.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.pushButton_sign_feed.sizePolicy().hasHeightForWidth())
self.pushButton_sign_feed.setSizePolicy(sizePolicy1) self.pushButton_sign_feed.setSizePolicy(sizePolicy1)
self.pushButton_sign_feed.setStyleSheet(u"*{\n" self.pushButton_sign_feed.setStyleSheet(u"*{\n"
"background-color: rgb(255, 0, 0);\n" "background-color: #7A7A7A;\n"
"font: 9pt \"\u6977\u4f53\";\n" "font: 9pt \"\u6977\u4f53\";\n"
"border: 1px solid #dcdfe6;\n" "border: 1px solid #dcdfe6;\n"
"border-radius: 5px;\n" "border-radius: 5px;\n"
"}\n" "}\n"
"*:pressed\n" "*:disabled\n"
"{\n" "{\n"
"background-color: #ff6e00;\n" "background-color: #ff6e00;\n"
"}\n" "}\n"
@ -719,9 +746,18 @@ class Ui_MainWindow(object):
self.label_sign_feed.setObjectName(u"label_sign_feed") self.label_sign_feed.setObjectName(u"label_sign_feed")
sizePolicy1.setHeightForWidth(self.label_sign_feed.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.label_sign_feed.sizePolicy().hasHeightForWidth())
self.label_sign_feed.setSizePolicy(sizePolicy1) self.label_sign_feed.setSizePolicy(sizePolicy1)
self.label_sign_feed.setStyleSheet(u"background-color: rgba(255, 255, 255, 0);\n" self.label_sign_feed.setStyleSheet(u"\n"
"QLabel:disabled{\n"
" background-color: rgba(255, 255, 255, 0);\n"
" font: 700 12pt \"Microsoft YaHei UI\";\n"
" color: red;\n"
"}\n"
"\n"
"QLabel{\n"
"background-color: rgba(255, 255, 255, 0);\n"
"font: 700 12pt \"Microsoft YaHei UI\";\n" "font: 700 12pt \"Microsoft YaHei UI\";\n"
"color: black;") "color:#7A7A7A;\n"
"}")
self.label_sign_feed.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter) self.label_sign_feed.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout_4.addWidget(self.label_sign_feed, 0, 7, 1, 1) self.gridLayout_4.addWidget(self.label_sign_feed, 0, 7, 1, 1)
@ -871,6 +907,13 @@ class Ui_MainWindow(object):
" border: 1px solid #A2EF4D; /* \u8bbe\u7f6e\u8fb9\u6846\u989c\u8272\u548c\u5bbd\u5ea6 */\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" " qproperty-alignment: 'AlignCenter'; /* \u8bbe\u7f6e\u6587\u672c\u5c45\u4e2d */\n"
"}\n" "}\n"
"QLabel:disabled{\n"
" background-color: #FD3251; \n"
" color: #ffffff; \n"
" border-radius: 8px; \n"
" border: 1px solid #FD3251; \n"
" qproperty-alignment: 'AlignCenter'; \n"
"}\n"
"") "")
self.gridLayout_3.addWidget(self.label_connect_status, 0, 1, 1, 1) self.gridLayout_3.addWidget(self.label_connect_status, 0, 1, 1, 1)
@ -3176,7 +3219,9 @@ class Ui_MainWindow(object):
self.lineEdit_num.setObjectName(u"lineEdit_num") self.lineEdit_num.setObjectName(u"lineEdit_num")
sizePolicy1.setHeightForWidth(self.lineEdit_num.sizePolicy().hasHeightForWidth()) sizePolicy1.setHeightForWidth(self.lineEdit_num.sizePolicy().hasHeightForWidth())
self.lineEdit_num.setSizePolicy(sizePolicy1) self.lineEdit_num.setSizePolicy(sizePolicy1)
self.lineEdit_num.setStyleSheet(u"color: rgb(255, 255, 255);") self.lineEdit_num.setStyleSheet(u"color: rgb(255, 255, 255);\n"
"border: 1px solid #dcdfe6;\n"
"font: 8pt \"Microsoft YaHei UI\";")
self.gridLayout.addWidget(self.lineEdit_num, 2, 0, 1, 1) self.gridLayout.addWidget(self.lineEdit_num, 2, 0, 1, 1)
@ -3743,6 +3788,7 @@ class Ui_MainWindow(object):
self.pushButton_num4.setText(QCoreApplication.translate("MainWindow", u"40", None)) self.pushButton_num4.setText(QCoreApplication.translate("MainWindow", u"40", None))
self.pushButton_num5.setText(QCoreApplication.translate("MainWindow", u"50", None)) self.pushButton_num5.setText(QCoreApplication.translate("MainWindow", u"50", None))
self.pushButton_num6.setText(QCoreApplication.translate("MainWindow", u"60", None)) self.pushButton_num6.setText(QCoreApplication.translate("MainWindow", u"60", None))
self.lineEdit_num.setPlaceholderText(QCoreApplication.translate("MainWindow", u"\u81ea\u5b9a\u4e49\u6570\u91cf", None))
self.pushButton_num_confirm.setText(QCoreApplication.translate("MainWindow", u"\u786e\u5b9a", None)) self.pushButton_num_confirm.setText(QCoreApplication.translate("MainWindow", u"\u786e\u5b9a", None))
self.pushButton_AddNum.setText(QCoreApplication.translate("MainWindow", u"\u8865\u4e00\u888b", 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_SubNum.setText(QCoreApplication.translate("MainWindow", u"\u6263\u4e00\u888b", None))