update 修改qss带来的异常退出
This commit is contained in:
@ -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:
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 = '切换到工具坐标'
|
||||||
|
|||||||
80
MainWin.ui
80
MainWin.ui
@ -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 "Microsoft YaHei UI";
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel{
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
font: 700 12pt "Microsoft YaHei UI";
|
font: 700 12pt "Microsoft YaHei UI";
|
||||||
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 "楷体";
|
font: 9pt "楷体";
|
||||||
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 "Microsoft YaHei UI";
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel{
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
font: 700 12pt "Microsoft YaHei UI";
|
font: 700 12pt "Microsoft YaHei UI";
|
||||||
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 "楷体";
|
font: 9pt "楷体";
|
||||||
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 "Microsoft YaHei UI";
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel{
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
font: 700 12pt "Microsoft YaHei UI";
|
font: 700 12pt "Microsoft YaHei UI";
|
||||||
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 "楷体";
|
font: 9pt "楷体";
|
||||||
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 "Microsoft YaHei UI";
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel{
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
font: 700 12pt "Microsoft YaHei UI";
|
font: 700 12pt "Microsoft YaHei UI";
|
||||||
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 "Microsoft YaHei UI";</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 "Microsoft YaHei UI";</string>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>自定义数量</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||||
|
|||||||
@ -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
158
main.py
@ -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())
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user