diff --git a/CU/Catch.py b/CU/Catch.py index 3893074..42dab1a 100644 --- a/CU/Catch.py +++ b/CU/Catch.py @@ -1,5 +1,6 @@ from enum import Enum +import Constant from COM.COM_Robot import RobotClient from Util.util_time import CClockPulse, CTon @@ -11,7 +12,7 @@ class CatchStatus(Enum): CShake = 3 COk = 4 -class catch: +class Catch: def __init__(self, robotClient: RobotClient): self.robotClient = robotClient self.catch_status = CatchStatus.CNone @@ -24,26 +25,27 @@ class catch: if self.catch_status == CatchStatus.CTake: self.robotClient.sendIOControl(self.robotClient.con_ios[0],1) - if self.robotClient.check_outputQ(self.robotClient.con_ios[0]): + if self.robotClient.check_outputQ(self.robotClient.con_ios[0]) or Constant.Debug: self.catch_status = CatchStatus.COk if self.catch_status == CatchStatus.CDrop: self.robotClient.sendIOControl(self.robotClient.con_ios[0],0) self.robotClient.sendIOControl(self.robotClient.con_ios[1],1) - if self.robotClient.check_outputQ(self.robotClient.con_ios[1]) and not self.robotClient.check_outputQ(self.robotClient.con_ios[0]): + if Constant.Debug or self.robotClient.check_outputQ(self.robotClient.con_ios[1]) and not self.robotClient.check_outputQ(self.robotClient.con_ios[0]): self.catch_status = CatchStatus.COk if self.catch_status == CatchStatus.CShake: - if not self.shake_continue.Q(True, 3000): - shakeQ = self.shakePulse.Q(True, 1000, 1000) + if not self.shake_continue.Q(True, 2000): + shakeQ = self.shakePulse.Q(True, 100, 100) self.robotClient.sendIOControl(self.robotClient.con_ios[2], shakeQ) + print("正在震动" if shakeQ else "震动结束") else: self.shake_continue.SetReset() self.catch_status = CatchStatus.COk - if self.robotClient.check_outputQ(self.robotClient.con_ios[2]): + if Constant.Debug or self.robotClient.check_outputQ(self.robotClient.con_ios[2]): self.robotClient.sendIOControl(self.robotClient.con_ios[2], False) + print("震动结束") if self.catch_status == CatchStatus.COk: - pass diff --git a/CU/Feeding.py b/CU/Feeding.py index f4b3682..f19c9ff 100644 --- a/CU/Feeding.py +++ b/CU/Feeding.py @@ -3,9 +3,11 @@ import time import cv2 from PyQt5.QtWidgets import QMessageBox +from PySide6.QtCore import Signal, QObject import Constant import Expection +from CU.Catch import Catch, CatchStatus from Model.FeedModel import PositionModel from Model.Position import Real_Position, Detection_Position from enum import Enum, IntEnum @@ -156,8 +158,11 @@ class FeedingConfig: pass -class Feeding: +class Feeding(QObject): + need_origin_signal = Signal(str) + take_no_photo_sigal = Signal(str) def __init__(self, robotClient: RobotClient, detection: Detection): + super().__init__() self.feedConfig = None self.feedStatus = FeedStatus.FNone self.robotClient = robotClient @@ -177,12 +182,14 @@ class Feeding: self.pos_index = -1 self.pos_near_index = -1 + self.catch = Catch(self.robotClient) pass def init_detection_image(self): self.detection_image = cv2.imread(Constant.feed_sign_path) def run(self): + self.catch.run() # 获取事件坐标 real_position = Real_Position() real_position.init_position(self.robotClient.status_model.world_0, @@ -233,6 +240,7 @@ class Feeding: log.log_message(logging.INFO, Constant.str_feed_start) if not self.robotClient.origin_position.compare(real_position) and not self.is_reverse: # QMessageBox.information(None, "提示", Constant.str_feed_start_error) # Fuck 引起异常 + self.need_origin_signal.emit(Constant.str_feed_start_error) self.feedStatus = FeedStatus.FNone return if self.is_reverse: @@ -270,7 +278,6 @@ class Feeding: self.feedConfig.feedLine.start2take_pos_index = len(self.feedConfig.feedLine.start_to_take) -2 self.feedConfig.feedLine.origin2start_pos_index = len(self.feedConfig.feedLine.origin_to_start) - 2 self.next_position(self.is_reverse) - return if self.robotClient.type_detection == DetectType.EyeOutHand: @@ -347,21 +354,31 @@ class Feeding: elif self.feedStatus == FeedStatus.FTake: log.log_message(logging.INFO, Constant.str_feed_take) if self.feedConfig.feedLine.get_take_position().get_position() != None: - self.take_no_photo = False + # self.take_no_photo = False if self.feedConfig.feedLine.get_take_position().get_position().compare(real_position): # 打开吸嘴并返回 # self.sendIOControl(self.robotClient.con_ios[0], 1) # self.sendIOControl(self.robotClient.con_ios[1], 1) # self.sendIOControl(self.robotClient.con_ios[2], 1) - # TODO 检测是否通 不然报警 - self.feedConfig.feedLine.set_take_position(None) - time.sleep(self.robotClient.time_delay_take) - log.log_message(logging.INFO, Constant.str_feed_take_success) - self.next_position() + + + if self.catch.catch_status == CatchStatus.CNone : + self.catch.catch_status = CatchStatus.CTake + return + if self.catch.catch_status == CatchStatus.CTake: + return + if self.catch.catch_status == CatchStatus.COk : + self.catch.catch_status = CatchStatus.CNone + self.feedConfig.feedLine.set_take_position(None) + time.sleep(self.robotClient.time_delay_take) + log.log_message(logging.INFO, Constant.str_feed_take_success) + self.next_position() + else: log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail) - self.take_no_photo = True + # self.take_no_photo = True + self.take_no_photo_sigal.emit() # 继续获取图像 # TODO @@ -383,8 +400,17 @@ class Feeding: log.log_message(logging.INFO, Constant.str_feed_shake) if self.get_current_position().get_position().compare(real_position): # TODO 震动方案 - time.sleep(self.robotClient.time_delay_shake) - self.next_position() + + + if self.catch.catch_status == CatchStatus.CNone: + self.catch.catch_status = CatchStatus.CShake + return + if self.catch.catch_status == CatchStatus.CShake: + return + if self.catch.catch_status == CatchStatus.COk: + self.catch.catch_status = CatchStatus.CNone + time.sleep(self.robotClient.time_delay_shake) + self.next_position() elif self.feedStatus == FeedStatus.FDropBag: log.log_message(logging.INFO, Constant.str_feed_drop) @@ -393,16 +419,23 @@ class Feeding: # self.sendIOControl(self.robotClient.con_ios[0], 0) # self.sendIOControl(self.robotClient.con_ios[1], 0) # self.sendIOControl(self.robotClient.con_ios[2], 0) - # TODO 检测是否断 不然报警 - time.sleep(self.robotClient.time_delay_put) - # TODO 获取目标位置 - # self.detection.get_position(Point_isVision=False, Box_isPoint=True, First_Depth=True, Iter_Max_Pixel=30, save_img_point=0, Height_reduce=30, width_reduce=30) - self.feedConfig.feedLine.set_take_position(self.get_take_position()) - self.feedConfig.num = self.feedConfig.num - 1 - log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}') - self.next_position() - def run_reseet(self): + if self.catch.catch_status == CatchStatus.CNone: + self.catch.catch_status = CatchStatus.CDrop + return + if self.catch.catch_status == CatchStatus.CDrop: + return + if self.catch.catch_status == CatchStatus.COk: + self.catch.catch_status = CatchStatus.CNone + time.sleep(self.robotClient.time_delay_put) + # self.detection.get_position(Point_isVision=False, Box_isPoint=True, First_Depth=True, Iter_Max_Pixel=30, save_img_point=0, Height_reduce=30, width_reduce=30) + self.feedConfig.feedLine.set_take_position(self.get_take_position()) + self.feedConfig.num = self.feedConfig.num - 1 + log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}') + self.next_position() + + + def run_reset(self): real_position = Real_Position() real_position.init_position(self.robotClient.status_model.world_0, self.robotClient.status_model.world_1, @@ -540,7 +573,7 @@ class Feeding: self.send_emergency_stop() return True def send_emergency_sound(self): - self.sendIOControl(Constant.IO_EmergencyPoint, 1) + self.sendIOControl(Constant.IO_EmergencyPoint, 2) def send_emergency_stop(self): self.sendIOControl(Constant.IO_EmergencyPoint, 0) @@ -597,8 +630,12 @@ class Feeding: self.robotClient.add_sendQuene(request_command) pass def get_take_position(self): + if Constant.Debug: + return self.robotClient.status_model.getRealPosition() _, img, xyz, uvw, points = self.detection.get_position(Point_isVision=False, Box_isPoint=True, First_Depth=True, Iter_Max_Pixel=30,save_img_point=0, Height_reduce=30, width_reduce=30) self.detection_image = img + if xyz ==None or uvw==None or points==None: + return None target_position,noraml_base = getPosition(*xyz,*uvw,None,points) position = Real_Position().init_position(*target_position[:3],*noraml_base[:3]) diff --git a/Config/FeedLine.ini b/Config/FeedLine.ini index 4b4bceb..ba2ae06 100644 --- a/Config/FeedLine.ini +++ b/Config/FeedLine.ini @@ -33,41 +33,119 @@ status = 3 linetype = 0 [Position5] -x = 0.0 -y = 0.0 -z = 0.0 -u = 0.0 +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 v = 0.0 -w = 0.0 +w = 1.0 id = 5 -order = 1 +order = 2 lineid = 1 status = 4 linetype = 0 [Position4] -x = 0.0 -y = 0.0 -z = 0.0 -u = 0.0 +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 v = 0.0 -w = 0.0 +w = 1.0 id = 4 -order = 2 +order = 3 lineid = 1 status = 2 linetype = 0 [Position1] -x = 0.0 -y = 0.0 -z = 0.0 -u = 0.0 +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 v = 0.0 -w = 0.0 +w = 1.0 id = 1 -order = 3 +order = 4 lineid = 1 status = 5 linetype = 0 +[Position6] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 6 +order = 1 +lineid = 1 +status = 2 +linetype = 0 + +[Position7] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 7 +order = 5 +lineid = 1 +status = 6 +linetype = 0 + +[Position8] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 8 +order = 6 +lineid = 1 +status = 7 +linetype = 0 + +[Position9] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 9 +order = 7 +lineid = 1 +status = 8 +linetype = 0 + +[Position10] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 10 +order = 8 +lineid = 1 +status = 9 +linetype = 0 + +[Position11] +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 +id = 11 +order = 9 +lineid = 1 +status = 3 +linetype = 0 + diff --git a/Constant.py b/Constant.py index 25d4527..d036ca9 100644 --- a/Constant.py +++ b/Constant.py @@ -57,7 +57,7 @@ str_feed_photo_confirm = '确认摆好' str_feed_io_control = '发送IO控制: ' str_feed_safe_error_msgbox = '未在安全位置,请先复位!' str_feed_shake = '摇摆' -str_feed_start_error = '请先复位机械臂' +str_feed_start_error = '请先复位到原点' str_feed_return_original_position_fail = '机械臂未按照实际路线点移动,未能寻找到适配路径点位' str_feed_reset_no_line_error = '未定义的线段' str_sys_start = '进入系统' diff --git a/MainWin.ui b/MainWin.ui index 5a0826c..21887e5 100644 --- a/MainWin.ui +++ b/MainWin.ui @@ -939,7 +939,7 @@ background-color: rgb(13, 17, 40); - 5 + 0 @@ -2477,11 +2477,14 @@ border:None; QFrame::Shadow::Raised - + + + 80 + - + 0 0 @@ -2529,7 +2532,7 @@ border:None; - + 0 0 @@ -2545,7 +2548,7 @@ border:None; - + 0 0 @@ -2561,7 +2564,7 @@ border:None; - + 0 0 @@ -2577,7 +2580,7 @@ border:None; - + 0 0 @@ -2625,7 +2628,7 @@ border:None; - + 0 0 diff --git a/Model/RobotModel.py b/Model/RobotModel.py index 597ea31..06cfda0 100644 --- a/Model/RobotModel.py +++ b/Model/RobotModel.py @@ -186,7 +186,7 @@ class CMDInstructRequest: if len(self.instructions) != 0: model_str = model_str+',"instructions":'+"[{"+self.instructions[0].toString()+"}]"+"}" else: - model_str = model_str+"}" + model_str = model_str+',"instructions":'+"[{""}]"+"}" #model_str+"}" print(model_str) return model_str diff --git a/Seting.ini b/Seting.ini index b08d5a7..87c492e 100644 --- a/Seting.ini +++ b/Seting.ini @@ -61,12 +61,12 @@ feed_speed = 10 reset_speed = 35 [Origin] -x = 143.921 -y = 2170.454 -z = 1627.494 -u = 3.234 -v = 24.269 -w = -87.403 +x = 7.0 +y = 50.0 +z = 1.0 +u = 12.0 +v = 0.0 +w = 1.0 [Camera_Feed] ipaddress = 127.0.0.1 diff --git a/main.py b/main.py index 96e6291..c526d7e 100644 --- a/main.py +++ b/main.py @@ -617,6 +617,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.robotClient.feed_speed = feed_speed self.robotClient.reset_speed = reset_speed self.feeding = Feeding(self.robotClient, self.detection) # 临时 + self.feeding.need_origin_signal.connect(self.show_infomessage_box) + self.feeding.take_no_photo_sigal.emit(self.show_no_photo_message_box) self.last_time = time.time() self.remain_lineName = self.configReader.get('Robot_Feed', 'remain_lineName') self.remain_Count = int(self.configReader.get('Robot_Feed', 'remain_Count')) @@ -870,7 +872,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): line_head = self.comboBox_lineIndex.currentData() self.command_quene.put(FeedCommand(FeedingConfig(num, FeedLine(self.feedLine_dict[line_head].id,self.feedLine_dict[line_head].name,self.feedLine_dict[line_head].positions), self.feeding.robotClient.photo_locs[:]))) - self.stackedWidget_num.setCurrentIndex(1) + # self.stackedWidget_num.setCurrentIndex(1) 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}') @@ -1157,8 +1159,16 @@ class MainWindow(QMainWindow, Ui_MainWindow): def send_reset_button_click(self): # TODO 清楚痕迹 # TODO 开启自动 + # 触发自动运行 + if self.robotClient.status_model.curMode != 7: + self.send_switch_tool_command() + log.log_message(logging.INFO, Constant.str_sys_switch_tool) + self.send_start_tool_command() + log.log_message(logging.INFO, Constant.str_sys_start_tool) + line_head = self.comboBox_lineIndex.currentData() + self.send_clear_auto_command() #safe_position = self.feedLine_dict[line_head].safe_position # self.send_position_command(safe_position.X, safe_position.Y, safe_position.Z, safe_position.U, safe_position.V, safe_position.W,move_type=MoveType.WORLD) if self.remain_lineName != '': @@ -1272,10 +1282,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): position_origin.init_position(self.robotClient.origin_position) position_origin.status = 1 command.feed_config.feedLine.feed_positions.insert(0,position_origin) - self.feeding.feedConfig = command.feed_config + self.robotClient.send_emergency_sound() time.sleep(5) self.robotClient.send_emergency_stop() + self.feeding.feedConfig = command.feed_config self.feeding.feedStatus = FeedStatus.FStart # self.feeding.feed_Mid_Status = FeedMidStatus.FMid_Start command.status = Status.Runing @@ -1283,7 +1294,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): try: self.feeding.run() - self.feeding.run_reseet() + self.feeding.run_reset() except: print(Error_Code.SYS_NONEPoint) @@ -1338,7 +1349,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.updateUI_label_status() self.updateUI_frame_sign(self.feeding.feedStatus) self.updateUI_IOPanel() - self.updateUI_InfoMB() + def updateRobotSeting(self): @@ -1349,11 +1360,20 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.lineEdit_origin_v.setText(str(self.robotClient.origin_position.V)) self.lineEdit_origin_w.setText(str(self.robotClient.origin_position.W)) - def updateUI_InfoMB(self): - if self.cton_take_no_photo.Q(self.feeding.take_no_photo,True): - self.show_infomessage_box("未识别到料袋报警,请重新放料后,点击继续") - self.send_pause_command(pause=1) - self.feeding.pause = True + def show_no_photo_message_box(self): + self.feeding.pause = True + self.send_pause_command(pause=1) + msg_box_person = QMessageBox() + msg_box_person.setIcon(QMessageBox.Icon.Warning) + msg_box_person.setText("未识别到料袋报警,请重新放料后,点击继续") + msg_box_person.setWindowTitle("提示") + msg_box_person.setStandardButtons(QMessageBox.StandardButton.Ok) + result = msg_box_person.exec() + if result == QMessageBox.StandardButton.Cancel: + return + # self.show_infomessage_box("") + + def updateUI_IOPanel(self): try: diff --git a/test2.py b/test2.py index 01ec96e..be5297b 100644 --- a/test2.py +++ b/test2.py @@ -1,76 +1,54 @@ -from PySide6.QtWidgets import QApplication, QPushButton, QMainWindow -from PySide6.QtGui import QPainter, QLinearGradient, QColor, QFont -from PySide6.QtCore import Qt, QRectF -import sys +import threading -class GradientButton(QPushButton): - def __init__(self, text, parent=None): - super().__init__(text, parent) - # 设置按钮无边框 - self.setFlat(True) - # 设置按钮文本对齐方式 +from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox +from PySide6.QtCore import QThread, Signal, QObject - # 设置按钮字体 - self.setFont(QFont("Arial", 14, QFont.Bold)) - # 启用鼠标追踪以便在悬停时重绘 - self.setMouseTracking(True) - # 当前是否悬停 - self.hover = False +class Worker: + # 定义一个类属性的信号 - def paintEvent(self, event): - painter = QPainter(self) - painter.setRenderHint(QPainter.Antialiasing) + def __init__(self): + self.task_done_signal = Signal(str) + def run_task(self): + import time + time.sleep(2) # 模拟耗时操作 + # 发送信号 + self.task_done_signal.emit("子线程任务完成!") - # 获取按钮的矩形区域 - rect = self.rect() - - # 创建线性渐变,从中心线向上下渐变 - gradient = QLinearGradient(rect.center().x(), rect.top(), rect.center().x(), rect.bottom()) - - - gradient.setColorAt(0, QColor(225,225,225)) - gradient.setColorAt(0.5, QColor('#1A1F38')) - gradient.setColorAt(1, QColor(225,225,225)) - - brush = gradient - painter.setBrush(brush) - painter.setPen(Qt.NoPen) - - # 绘制圆角矩形作为按钮背景 - radius = 2 # 圆角半径 - painter.drawRoundedRect(QRectF(rect), radius, radius) - - # 绘制按钮文本 - painter.setPen(QColor('#E8E9EB')) # 设置字体为白色 - painter.drawText(rect, Qt.AlignCenter, self.text()) - - def enterEvent(self, event): - self.hover = True - self.update() # 触发重绘 - super().enterEvent(event) - - def leaveEvent(self, event): - self.hover = False - self.update() # 触发重绘 - super().leaveEvent(event) class MainWindow(QMainWindow): def __init__(self): super().__init__() - self.setWindowTitle("中心线性渐变按钮示例") - self.setFixedSize(400, 300) + self.setWindowTitle("子线程信号示例") + self.setGeometry(200, 200, 400, 300) - # 创建自定义渐变按钮 - self.button = GradientButton("点击我", self) - self.button.setGeometry(100, 130, 100, 40) - # 连接按钮点击事件 - self.button.clicked.connect(self.on_button_click) + # 添加按钮 + self.button = QPushButton("启动子线程", self) + self.button.setGeometry(100, 100, 200, 50) + self.button.clicked.connect(self.run_task) - def on_button_click(self): - print("按钮被点击了!") + # 创建子线程和工作者对象 + self.worker_thread = threading.Thread(target=self.run_task) + self.worker = Worker() + + # 连接信号和槽 + self.worker.task_done_signal.connect(self.show_message) + + def run_task(self): + # 启动子线程 + self.worker_thread.start() + + def show_message(self, message): + # 显示来自子线程的消息 + QMessageBox.information(self, "任务完成", message) + + # 停止子线程 + self.worker_thread.quit() + self.worker_thread.wait() if __name__ == "__main__": - app = QApplication(sys.argv) + app = QApplication([]) + window = MainWindow() window.show() - sys.exit(app.exec()) + + app.exec() diff --git a/ui_MainWin.py b/ui_MainWin.py index 9a6f70b..cf29ded 100644 --- a/ui_MainWin.py +++ b/ui_MainWin.py @@ -1533,114 +1533,118 @@ class Ui_MainWindow(object): "border:None;") self.frame_27.setFrameShape(QFrame.Shape.StyledPanel) self.frame_27.setFrameShadow(QFrame.Shadow.Raised) - self.horizontalLayout_15 = QHBoxLayout(self.frame_27) - self.horizontalLayout_15.setObjectName(u"horizontalLayout_15") - self.label_90 = QLabel(self.frame_27) - self.label_90.setObjectName(u"label_90") - sizePolicy2.setHeightForWidth(self.label_90.sizePolicy().hasHeightForWidth()) - self.label_90.setSizePolicy(sizePolicy2) - self.label_90.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) + self.gridLayout_9 = QGridLayout(self.frame_27) + self.gridLayout_9.setObjectName(u"gridLayout_9") + self.gridLayout_9.setVerticalSpacing(80) + self.label_92 = QLabel(self.frame_27) + self.label_92.setObjectName(u"label_92") + sizePolicy7 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) + sizePolicy7.setHorizontalStretch(0) + sizePolicy7.setVerticalStretch(0) + sizePolicy7.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth()) + self.label_92.setSizePolicy(sizePolicy7) + self.label_92.setAlignment(Qt.AlignmentFlag.AlignCenter) - self.horizontalLayout_15.addWidget(self.label_90) - - self.lineEdit_origin_x = QLineEdit(self.frame_27) - self.lineEdit_origin_x.setObjectName(u"lineEdit_origin_x") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_x.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_x.setSizePolicy(sizePolicy2) - self.lineEdit_origin_x.setStyleSheet(u"border:1px solid #FFFfff") - self.lineEdit_origin_x.setReadOnly(True) - - self.horizontalLayout_15.addWidget(self.lineEdit_origin_x) - - self.label_93 = QLabel(self.frame_27) - self.label_93.setObjectName(u"label_93") - sizePolicy2.setHeightForWidth(self.label_93.sizePolicy().hasHeightForWidth()) - self.label_93.setSizePolicy(sizePolicy2) - self.label_93.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) - - self.horizontalLayout_15.addWidget(self.label_93) + self.gridLayout_9.addWidget(self.label_92, 1, 2, 1, 1) self.lineEdit_origin_y = QLineEdit(self.frame_27) self.lineEdit_origin_y.setObjectName(u"lineEdit_origin_y") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_y.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_y.setSizePolicy(sizePolicy2) + sizePolicy4.setHeightForWidth(self.lineEdit_origin_y.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_y.setSizePolicy(sizePolicy4) self.lineEdit_origin_y.setStyleSheet(u"border:1px solid #FFFfff") self.lineEdit_origin_y.setReadOnly(True) - self.horizontalLayout_15.addWidget(self.lineEdit_origin_y) - - self.label_88 = QLabel(self.frame_27) - self.label_88.setObjectName(u"label_88") - sizePolicy2.setHeightForWidth(self.label_88.sizePolicy().hasHeightForWidth()) - self.label_88.setSizePolicy(sizePolicy2) - self.label_88.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) - - self.horizontalLayout_15.addWidget(self.label_88) - - self.lineEdit_origin_z = QLineEdit(self.frame_27) - self.lineEdit_origin_z.setObjectName(u"lineEdit_origin_z") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_z.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_z.setSizePolicy(sizePolicy2) - self.lineEdit_origin_z.setStyleSheet(u"border:1px solid #FFFfff") - self.lineEdit_origin_z.setReadOnly(True) - - self.horizontalLayout_15.addWidget(self.lineEdit_origin_z) - - self.label_89 = QLabel(self.frame_27) - self.label_89.setObjectName(u"label_89") - sizePolicy2.setHeightForWidth(self.label_89.sizePolicy().hasHeightForWidth()) - self.label_89.setSizePolicy(sizePolicy2) - self.label_89.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) - - self.horizontalLayout_15.addWidget(self.label_89) - - self.lineEdit_origin_u = QLineEdit(self.frame_27) - self.lineEdit_origin_u.setObjectName(u"lineEdit_origin_u") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_u.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_u.setSizePolicy(sizePolicy2) - self.lineEdit_origin_u.setStyleSheet(u"border:1px solid #FFFfff") - self.lineEdit_origin_u.setReadOnly(True) - - self.horizontalLayout_15.addWidget(self.lineEdit_origin_u) - - self.label_92 = QLabel(self.frame_27) - self.label_92.setObjectName(u"label_92") - sizePolicy2.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth()) - self.label_92.setSizePolicy(sizePolicy2) - self.label_92.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) - - self.horizontalLayout_15.addWidget(self.label_92) + self.gridLayout_9.addWidget(self.lineEdit_origin_y, 0, 3, 1, 1) self.lineEdit_origin_v = QLineEdit(self.frame_27) self.lineEdit_origin_v.setObjectName(u"lineEdit_origin_v") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_v.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_v.setSizePolicy(sizePolicy2) + sizePolicy4.setHeightForWidth(self.lineEdit_origin_v.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_v.setSizePolicy(sizePolicy4) self.lineEdit_origin_v.setStyleSheet(u"border:1px solid #FFFfff") self.lineEdit_origin_v.setReadOnly(True) - self.horizontalLayout_15.addWidget(self.lineEdit_origin_v) + self.gridLayout_9.addWidget(self.lineEdit_origin_v, 1, 3, 1, 1) + + self.label_88 = QLabel(self.frame_27) + self.label_88.setObjectName(u"label_88") + sizePolicy7.setHeightForWidth(self.label_88.sizePolicy().hasHeightForWidth()) + self.label_88.setSizePolicy(sizePolicy7) + self.label_88.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.gridLayout_9.addWidget(self.label_88, 0, 4, 1, 1) + + self.label_93 = QLabel(self.frame_27) + self.label_93.setObjectName(u"label_93") + sizePolicy7.setHeightForWidth(self.label_93.sizePolicy().hasHeightForWidth()) + self.label_93.setSizePolicy(sizePolicy7) + self.label_93.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.gridLayout_9.addWidget(self.label_93, 0, 2, 1, 1) + + self.label_95 = QLabel(self.frame_27) + self.label_95.setObjectName(u"label_95") + sizePolicy7.setHeightForWidth(self.label_95.sizePolicy().hasHeightForWidth()) + self.label_95.setSizePolicy(sizePolicy7) + self.label_95.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.gridLayout_9.addWidget(self.label_95, 1, 0, 1, 1) + + self.label_90 = QLabel(self.frame_27) + self.label_90.setObjectName(u"label_90") + sizePolicy7.setHeightForWidth(self.label_90.sizePolicy().hasHeightForWidth()) + self.label_90.setSizePolicy(sizePolicy7) + self.label_90.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.gridLayout_9.addWidget(self.label_90, 0, 0, 1, 1) + + self.lineEdit_origin_u = QLineEdit(self.frame_27) + self.lineEdit_origin_u.setObjectName(u"lineEdit_origin_u") + sizePolicy4.setHeightForWidth(self.lineEdit_origin_u.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_u.setSizePolicy(sizePolicy4) + self.lineEdit_origin_u.setStyleSheet(u"border:1px solid #FFFfff") + self.lineEdit_origin_u.setReadOnly(True) + + self.gridLayout_9.addWidget(self.lineEdit_origin_u, 1, 1, 1, 1) + + self.lineEdit_origin_x = QLineEdit(self.frame_27) + self.lineEdit_origin_x.setObjectName(u"lineEdit_origin_x") + sizePolicy4.setHeightForWidth(self.lineEdit_origin_x.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_x.setSizePolicy(sizePolicy4) + self.lineEdit_origin_x.setStyleSheet(u"border:1px solid #FFFfff") + self.lineEdit_origin_x.setReadOnly(True) + + self.gridLayout_9.addWidget(self.lineEdit_origin_x, 0, 1, 1, 1) self.label_91 = QLabel(self.frame_27) self.label_91.setObjectName(u"label_91") - sizePolicy2.setHeightForWidth(self.label_91.sizePolicy().hasHeightForWidth()) - self.label_91.setSizePolicy(sizePolicy2) - self.label_91.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) + sizePolicy7.setHeightForWidth(self.label_91.sizePolicy().hasHeightForWidth()) + self.label_91.setSizePolicy(sizePolicy7) + self.label_91.setAlignment(Qt.AlignmentFlag.AlignCenter) - self.horizontalLayout_15.addWidget(self.label_91) + self.gridLayout_9.addWidget(self.label_91, 1, 4, 1, 1) self.lineEdit_origin_w = QLineEdit(self.frame_27) self.lineEdit_origin_w.setObjectName(u"lineEdit_origin_w") - sizePolicy2.setHeightForWidth(self.lineEdit_origin_w.sizePolicy().hasHeightForWidth()) - self.lineEdit_origin_w.setSizePolicy(sizePolicy2) + sizePolicy4.setHeightForWidth(self.lineEdit_origin_w.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_w.setSizePolicy(sizePolicy4) self.lineEdit_origin_w.setStyleSheet(u"border:1px solid #FFFfff") self.lineEdit_origin_w.setReadOnly(True) - self.horizontalLayout_15.addWidget(self.lineEdit_origin_w) + self.gridLayout_9.addWidget(self.lineEdit_origin_w, 1, 5, 1, 1) + + self.lineEdit_origin_z = QLineEdit(self.frame_27) + self.lineEdit_origin_z.setObjectName(u"lineEdit_origin_z") + sizePolicy4.setHeightForWidth(self.lineEdit_origin_z.sizePolicy().hasHeightForWidth()) + self.lineEdit_origin_z.setSizePolicy(sizePolicy4) + self.lineEdit_origin_z.setStyleSheet(u"border:1px solid #FFFfff") + self.lineEdit_origin_z.setReadOnly(True) + + self.gridLayout_9.addWidget(self.lineEdit_origin_z, 0, 5, 1, 1) self.pushButton_get_origin = QPushButton(self.frame_27) self.pushButton_get_origin.setObjectName(u"pushButton_get_origin") - sizePolicy2.setHeightForWidth(self.pushButton_get_origin.sizePolicy().hasHeightForWidth()) - self.pushButton_get_origin.setSizePolicy(sizePolicy2) + sizePolicy4.setHeightForWidth(self.pushButton_get_origin.sizePolicy().hasHeightForWidth()) + self.pushButton_get_origin.setSizePolicy(sizePolicy4) self.pushButton_get_origin.setStyleSheet(u"\n" "*{\n" "color: #ffffff;\n" @@ -1655,12 +1659,12 @@ class Ui_MainWindow(object): "}\n" "") - self.horizontalLayout_15.addWidget(self.pushButton_get_origin) + self.gridLayout_9.addWidget(self.pushButton_get_origin, 2, 1, 1, 2) self.pushButton_set_origin = QPushButton(self.frame_27) self.pushButton_set_origin.setObjectName(u"pushButton_set_origin") - sizePolicy2.setHeightForWidth(self.pushButton_set_origin.sizePolicy().hasHeightForWidth()) - self.pushButton_set_origin.setSizePolicy(sizePolicy2) + sizePolicy4.setHeightForWidth(self.pushButton_set_origin.sizePolicy().hasHeightForWidth()) + self.pushButton_set_origin.setSizePolicy(sizePolicy4) self.pushButton_set_origin.setStyleSheet(u"\n" "*{\n" "color: #ffffff;\n" @@ -1675,12 +1679,14 @@ class Ui_MainWindow(object): "}\n" "") - self.horizontalLayout_15.addWidget(self.pushButton_set_origin) + self.gridLayout_9.addWidget(self.pushButton_set_origin, 2, 4, 1, 2) + self.gridLayout_9.setRowStretch(0, 1) + self.gridLayout_9.setRowStretch(1, 1) + self.gridLayout_9.setRowStretch(2, 1) self.verticalLayout_16.addWidget(self.frame_27) - self.verticalLayout_16.setStretch(0, 1) self.verticalLayout_15.addWidget(self.frame_6) @@ -2453,11 +2459,11 @@ class Ui_MainWindow(object): self.verticalLayout_18.setObjectName(u"verticalLayout_18") self.frame_29 = QFrame(self.frame_8) self.frame_29.setObjectName(u"frame_29") - sizePolicy7 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum) - sizePolicy7.setHorizontalStretch(0) - sizePolicy7.setVerticalStretch(0) - sizePolicy7.setHeightForWidth(self.frame_29.sizePolicy().hasHeightForWidth()) - self.frame_29.setSizePolicy(sizePolicy7) + sizePolicy8 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum) + sizePolicy8.setHorizontalStretch(0) + sizePolicy8.setVerticalStretch(0) + sizePolicy8.setHeightForWidth(self.frame_29.sizePolicy().hasHeightForWidth()) + self.frame_29.setSizePolicy(sizePolicy8) self.frame_29.setFrameShape(QFrame.Shape.StyledPanel) self.frame_29.setFrameShadow(QFrame.Shadow.Raised) self.gridLayout_6 = QGridLayout(self.frame_29) @@ -3787,7 +3793,7 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) - self.stackedWidget_view.setCurrentIndex(3) + self.stackedWidget_view.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0) self.stackedWidget_num.setCurrentIndex(0) @@ -3869,11 +3875,11 @@ class Ui_MainWindow(object): self.label_76.setText(QCoreApplication.translate("MainWindow", u"30", None)) self.label_83.setText(QCoreApplication.translate("MainWindow", u"31", None)) self.label_79.setText(QCoreApplication.translate("MainWindow", u"32", None)) - self.label_90.setText(QCoreApplication.translate("MainWindow", u"X1:", None)) - self.label_93.setText(QCoreApplication.translate("MainWindow", u"Y1:", None)) - self.label_88.setText(QCoreApplication.translate("MainWindow", u"Z1:", None)) - self.label_89.setText(QCoreApplication.translate("MainWindow", u"U1:", None)) self.label_92.setText(QCoreApplication.translate("MainWindow", u"V1:", None)) + self.label_88.setText(QCoreApplication.translate("MainWindow", u"Z1:", None)) + self.label_93.setText(QCoreApplication.translate("MainWindow", u"Y1:", None)) + self.label_95.setText(QCoreApplication.translate("MainWindow", u"U1:", None)) + self.label_90.setText(QCoreApplication.translate("MainWindow", u"X1:", None)) self.label_91.setText(QCoreApplication.translate("MainWindow", u"W1:", None)) self.pushButton_get_origin.setText(QCoreApplication.translate("MainWindow", u"\u83b7\u53d6\u539f\u70b9", None)) self.pushButton_set_origin.setText(QCoreApplication.translate("MainWindow", u"\u4fdd\u5b58\u539f\u70b9", None))