update 更新界面显示

This commit is contained in:
FrankCV2048
2024-09-12 23:36:01 +08:00
parent 176a7b38ce
commit 20feaecbbe
9 changed files with 2654 additions and 1473 deletions

154
app.py
View File

@ -11,6 +11,8 @@ from PySide6.QtGui import QIntValidator, QStandardItemModel, QStandardItem, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QHeaderView, QTableWidget, \
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox
from datetime import datetime
import Util.util_pic
from Util.util_ini import writeFeedLine_to_ini
import Constant
from CU.Command import FeedCommand
@ -39,6 +41,61 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.init_FeedLine()
self.start_Runing()
self.init_log()
self.init_qss()
def init_qss(self):
self.active_status_Qss = """
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: black;
"""
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):
@ -139,7 +196,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
rows = len(self.feedLine_dict.keys()) + 1
self.tableWidget_feedSeting.setRowCount(rows)
self.tableWidget_feedSeting.setColumnCount(19)
self.tableWidget_feedSeting.setColumnCount(20)
# 设置第一重表头的合并 (三列一组)
self.tableWidget_feedSeting_addtional_col_num = 2
@ -507,6 +564,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
else:
self.pushButton_pauseFeed.setText('暂停')
self.send_pause_command(False)
self.send_start_tool_command()
pass
@ -558,7 +616,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def run(self):
while True:
time.sleep(0.2)
time.sleep(0.1)
if not self.command_quene.empty():
command = self.command_quene.get()
if isinstance(command, FeedCommand) and command.status == Status.Prepareing:
@ -592,7 +650,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.label_date.setText(datetime.now().strftime("%Y-%m-%d"))
self.label_time.setText(datetime.now().strftime("%H:%M:%S"))
self.updateUI_Position()
self.updateUI_label_detection()
self.updateUI_frame_sign(self.feeding.feedStatus)
def updateUI_label_detection(self):
backgroud_img = Util.util_pic.cv2_to_qpixmap(self.feeding.detection_image)
self.label_showDetection.setPixmap(backgroud_img)
def updateUI_Select_Line(self):
self.comboBox_lineIndex.clear()
@ -627,29 +693,74 @@ class MainWindow(QMainWindow, Ui_MainWindow):
QTableWidgetItem(str(real_Position.V)))
self.tableWidget_feedSeting.setItem(row_i, position_j * 6 + 5 + self.tableWidget_feedSeting_addtional_col_num,
QTableWidgetItem(str(real_Position.W)))
def updateUI_frame_sign(self,sign:FeedStatus):
# print("start")
if sign == FeedStatus.FNone:
self.set_sign_status(self.label_sign_go, self.pushButton_sign_go, False)
self.set_sign_status(self.label_sign_photo, self.pushButton_sign_photo, False)
self.set_sign_status(self.label_sign_take, self.pushButton_sign_take, False)
self.set_sign_status(self.label_sign_feed, self.pushButton_sign_feed, False)
return
if sign < FeedStatus.FPhoto:
self.set_sign_status(self.label_sign_go,self.pushButton_sign_go,True)
self.set_sign_status(self.label_sign_photo, self.pushButton_sign_photo, False)
self.set_sign_status(self.label_sign_take, self.pushButton_sign_take, False)
self.set_sign_status(self.label_sign_feed, self.pushButton_sign_feed, False)
return
if sign <= FeedStatus.FPhoto:
self.set_sign_status(self.label_sign_go, self.pushButton_sign_go, False)
self.set_sign_status(self.label_sign_photo,self.pushButton_sign_photo,True)
self.set_sign_status(self.label_sign_take, self.pushButton_sign_take, False)
self.set_sign_status(self.label_sign_feed, self.pushButton_sign_feed, False)
return
if sign <= FeedStatus.FTake:
self.set_sign_status(self.label_sign_go, self.pushButton_sign_go, False)
self.set_sign_status(self.label_sign_photo, self.pushButton_sign_photo, False)
self.set_sign_status(self.label_sign_take, self.pushButton_sign_take, True)
self.set_sign_status(self.label_sign_feed, self.pushButton_sign_feed, False)
return
if sign <= FeedStatus.FBroken:
self.set_sign_status(self.label_sign_go, self.pushButton_sign_go, False)
self.set_sign_status(self.label_sign_photo, self.pushButton_sign_photo, False)
self.set_sign_status(self.label_sign_take, self.pushButton_sign_take, False)
self.set_sign_status(self.label_sign_feed, self.pushButton_sign_feed, True)
return
pass
def set_label_status_style(self, connected: bool):
if connected:
self.label_connect_status.setStyleSheet("""
QLabel {
background-color: #A2EF4D; /* 设置背景颜色 */
color: #ffffff; /* 设置字体颜色 */
border-radius: 8px; /* 圆角半径设置为 QLabel 的一半,形成圆形 */
border: 1px solid #A2EF4D; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
}
""")
if connected:
if self.label_connect_status.styleSheet().strip() != self.active_status_Qss:
self.label_connect_status.setStyleSheet(self.active_status_Qss)
self.active_status_Qss = self.label_connect_status.styleSheet().strip()
else:
self.label_connect_status.setStyleSheet("""
QLabel {
background-color: #FD3251; /* 设置背景颜色 */
color: #ffffff; /* 设置字体颜色 */
border-radius: 8px; /* 圆角半径设置为 QLabel 的一半,形成圆形 */
border: 1px solid #FD3251; /* 设置边框颜色和宽度 */
qproperty-alignment: 'AlignCenter'; /* 设置文本居中 */
}
""")
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):
try :
if signed:
if label.styleSheet().strip() != self.active_label_sign_Qss:
label.setStyleSheet(self.active_label_sign_Qss)
self.active_label_sign_Qss = label.styleSheet().strip()
if btn.styleSheet().strip() != self.active_btn_sign_Qss:
btn.setStyleSheet(self.active_btn_sign_Qss)
self.active_btn_sign_Qss = btn.styleSheet().strip()
else:
if label.styleSheet().strip() != self.noactive_label_sign_Qss:
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:
print(e)
def set_run_status_button(self, isRuning: bool):
self.pushButton_pauseFeed.setText("暂停")
@ -670,6 +781,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.command_quene.put(request_command)
def send_position_command(self, x1, x2, x3, x4, x5, x6, move_type: MoveType = MoveType.WORLD):
position_instruction = Instruction()
position_instruction.m0 = float(x1)
position_instruction.m1 = float(x2)