update 完成UI可视化界面生成
This commit is contained in:
345
main.py
345
main.py
@ -10,14 +10,15 @@ import PySide6
|
||||
from PyQt5.uic.properties import QtWidgets
|
||||
from PySide6 import QtCore
|
||||
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, QCursor, QColor
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QHeaderView, QTableWidget, \
|
||||
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox, QSizePolicy, QComboBox
|
||||
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox, QSizePolicy, QComboBox, QMenu
|
||||
from datetime import datetime
|
||||
|
||||
from click import clear
|
||||
|
||||
import Util.util_pic
|
||||
from Model.FeedModel import LineModel, PositionModel
|
||||
from Util.util_ini import writeFeedLine_to_ini
|
||||
import Constant
|
||||
from CU.Command import FeedCommand
|
||||
@ -49,13 +50,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.init_UI()
|
||||
self.init_Run()
|
||||
self.init_robot_info()
|
||||
self.init_FeedLine()
|
||||
|
||||
self.init_IOPanel()
|
||||
self.start_Runing()
|
||||
self.init_log()
|
||||
self.init_table_positions()
|
||||
|
||||
|
||||
self.init_FeedLine()
|
||||
self.init_table_lines()
|
||||
self.init_table_position()
|
||||
self.table_line_changed = False
|
||||
self.table_position_changed = False
|
||||
self.selected_line_section = ''
|
||||
|
||||
def init_IOPanel(self):
|
||||
self.dirt_io_points = {}
|
||||
@ -157,34 +161,262 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.widget_y32.clicked.connect(self.send_IO_Point_OpenOrClose)
|
||||
self.widget_y32.index=32
|
||||
|
||||
# region 战线,点位表格初始化
|
||||
def init_table_lines(self):
|
||||
self.tableWidget_lines.setColumnCount(4)
|
||||
|
||||
|
||||
def init_table_positions(self):
|
||||
self.tableWidget_positions.setRowCount(9)
|
||||
self.tableWidget_positions.setColumnCount(2)
|
||||
self.tableWidget_positions.setHorizontalHeaderLabels(["名字", "删除点位"])
|
||||
self.tableWidget_positions.setSelectionBehavior(QTableWidget.SelectRows)
|
||||
self.tableWidget_positions.setAutoScroll(True)
|
||||
self.tableWidget_lines.horizontalHeader().setStyleSheet(f"background-color: {QColor(44,44,44).name()};")
|
||||
self.tableWidget_lines.verticalHeader().setStyleSheet(f"background-color: {QColor(44,44,44).name()};")
|
||||
self.tableWidget_lines.verticalHeader().hide()
|
||||
self.tableWidget_lines.setHorizontalHeaderLabels(["节名", "线名", "id", "操作"])
|
||||
self.tableWidget_lines.setSelectionBehavior(QTableWidget.SelectRows)
|
||||
self.tableWidget_lines.setAutoScroll(True)
|
||||
self.tableWidget_lines. setColumnHidden(0,True)
|
||||
self.tableWidget_lines. setColumnHidden(2,True)
|
||||
|
||||
# 自动调整列宽
|
||||
header = self.tableWidget_positions.horizontalHeader()
|
||||
|
||||
# 让第一列宽度根据内容自动调整
|
||||
header = self.tableWidget_lines.horizontalHeader()
|
||||
header.setSectionResizeMode(0, PySide6.QtWidgets.QHeaderView.ResizeMode.Stretch)
|
||||
|
||||
# 第二列宽度根据内容自动调整
|
||||
header.setSectionResizeMode(1, PySide6.QtWidgets.QHeaderView.ResizeMode.Stretch)
|
||||
header.setSectionResizeMode(2, PySide6.QtWidgets.QHeaderView.ResizeMode.Stretch)
|
||||
self.tableWidget_lines.setContextMenuPolicy(PySide6.QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
self.tableWidget_lines.customContextMenuRequested.connect(self.show_lines_context_menu)
|
||||
|
||||
self.tableWidget_lines.cellChanged.connect(self.send_table_lines_cell_changed)
|
||||
self.init_table_lines_data()
|
||||
|
||||
for row in range(5):
|
||||
combo = QComboBox()
|
||||
combo.addItems(["位置 A", "位置 B", "位置 C"])
|
||||
self.tableWidget_positions.setCellWidget(row, 0, combo)
|
||||
self.pushButton_savePosition.clicked.connect(self.send_save_lines_data)
|
||||
|
||||
for row in range(5):
|
||||
get_button = QPushButton("获取位置")
|
||||
# get_button.clicked.connect(self.get_location)
|
||||
self.tableWidget_positions.setCellWidget(row, 1, get_button)
|
||||
def send_table_lines_cell_changed(self):
|
||||
self.table_line_changed = True
|
||||
def send_save_lines_data(self):
|
||||
if self.table_position_changed or self.table_line_changed:
|
||||
section = self.selected_line_section
|
||||
for row_i in range(self.tableWidget_lines.rowCount()):
|
||||
if self.tableWidget_lines.item(row_i, 0).text() == section:
|
||||
line_model = LineModel()
|
||||
line_model.section = section
|
||||
line_model.name = self.tableWidget_lines.item(row_i, 1).text()
|
||||
line_model.id = int(self.tableWidget_lines.item(row_i, 2).text())
|
||||
line_model.positions = self.get_table_positions()
|
||||
if len(self.get_table_positions()) != 0 and line_model.id != self.get_table_positions()[0].id:
|
||||
return
|
||||
if len(self.get_table_positions())==0:
|
||||
return
|
||||
|
||||
config_reader = configparser.ConfigParser()
|
||||
config_reader.read(Constant.feedLine_set_file, encoding='utf-8')
|
||||
line_model.save_line_model(config_reader)
|
||||
config_reader.write(open(Constant.feedLine_set_file, 'w', encoding='utf-8'))
|
||||
break
|
||||
self.init_FeedLine()
|
||||
|
||||
self.init_table_lines_data()
|
||||
self.table_line_changed = False
|
||||
self.table_position_changed = False
|
||||
def get_table_positions(self):
|
||||
position_models = []
|
||||
for row_i in range(self.tableWidget_line_positions.rowCount()):
|
||||
section = self.tableWidget_line_positions.item(row_i, 0).text()
|
||||
position_model = PositionModel(index=row_i)
|
||||
position_model.section = section
|
||||
position_model.X = float(self.tableWidget_line_positions.item(row_i, 1).text())
|
||||
position_model.Y = float(self.tableWidget_line_positions.item(row_i, 2).text())
|
||||
position_model.Z = float(self.tableWidget_line_positions.item(row_i, 3).text())
|
||||
position_model.U = float(self.tableWidget_line_positions.item(row_i, 4).text())
|
||||
position_model.V = float(self.tableWidget_line_positions.item(row_i, 5).text())
|
||||
position_model.W = float(self.tableWidget_line_positions.item(row_i, 6).text())
|
||||
widget = self.tableWidget_line_positions.cellWidget(row_i, 7)
|
||||
position_model.status = widget.currentData()
|
||||
position_model.id = int(self.tableWidget_line_positions.item(row_i, 8).text())
|
||||
position_model.order = row_i
|
||||
position_model.lineId = int(self.tableWidget_line_positions.item(row_i, 10).text())
|
||||
position_models.append(position_model)
|
||||
return position_models
|
||||
def init_table_lines_data(self):
|
||||
# self.tableWidget_lines.setItem(0, 0, QTableWidgetItem("线1"))
|
||||
# self.tableWidget_lines.setItem(1, 0, QTableWidgetItem("线2"))
|
||||
# self.tableWidget_lines.setItem()
|
||||
self.tableWidget_lines.setRowCount(0)
|
||||
for key,value in self.feedLine_dict.items():
|
||||
self.tableWidget_lines.insertRow(self.tableWidget_lines.rowCount())
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 0, QTableWidgetItem(key))
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 1, QTableWidgetItem(value.name))
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 2, QTableWidgetItem(value.id))
|
||||
show_pos_btn = QPushButton("显示路径")
|
||||
show_pos_btn.clicked.connect(
|
||||
lambda _, index=self.tableWidget_lines.rowCount()-1: self.show_lines_pos_data(index))
|
||||
self.tableWidget_lines.setCellWidget(self.tableWidget_lines.rowCount() - 1, 3, show_pos_btn)
|
||||
self.tableWidget_line_positions.setRowCount(0)
|
||||
self.selected_line_section = ''
|
||||
|
||||
def show_lines_context_menu(self):
|
||||
menu = QMenu(self)
|
||||
action_add = menu.addAction("添加投料线")
|
||||
action_del = menu.addAction("删除投料线")
|
||||
action = menu.exec(QCursor.pos())
|
||||
if action == action_add:
|
||||
self.add_new_line()
|
||||
elif action == action_del:
|
||||
self.del_line()
|
||||
def del_line(self):
|
||||
if self.tableWidget_lines.rowCount()==0:
|
||||
return
|
||||
if self.tableWidget_lines.currentRow()==-1:
|
||||
return
|
||||
self.tableWidget_lines.removeRow(self.tableWidget_lines.currentRow())
|
||||
self.table_line_changed = True
|
||||
|
||||
def add_new_line(self):
|
||||
add_section = f'{Constant.feedLine_set_section}{1}'
|
||||
for i in range(1,Constant.MAX_Line_num):
|
||||
if not self.feedLine_dict.get(f"{Constant.feedLine_set_section}{i}"):
|
||||
add_section = f"{Constant.feedLine_set_section}{i}"
|
||||
break
|
||||
|
||||
self.tableWidget_lines.insertRow(self.tableWidget_lines.rowCount())
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 0, QTableWidgetItem(add_section))
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 1, QTableWidgetItem("线" + str(self.tableWidget_lines.rowCount())))
|
||||
self.tableWidget_lines.setItem(self.tableWidget_lines.rowCount()-1, 2, QTableWidgetItem(str(i)))
|
||||
show_pos_btn = QPushButton("显示路径")
|
||||
show_pos_btn.clicked.connect(lambda _, index=self.tableWidget_lines.rowCount()-1: self.show_lines_pos_data(index))
|
||||
self.tableWidget_lines.setCellWidget(self.tableWidget_lines.rowCount()-1, 3,show_pos_btn)
|
||||
|
||||
self.table_position_changed = True
|
||||
self.feedLine_dict[add_section] = LineModel(i)
|
||||
def show_lines_pos_data(self,line_index):
|
||||
if self.selected_line_section!='' and self.selected_line_section != self.tableWidget_lines.item(line_index,0).text():
|
||||
if self.table_position_changed or self.table_line_changed:
|
||||
msgBox = QMessageBox()
|
||||
msgBox.setText("已修改的数据,是否保存?")
|
||||
msgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
|
||||
result = msgBox.exec()
|
||||
if result == QMessageBox.StandardButton.Ok:
|
||||
self.send_save_lines_data()
|
||||
else:
|
||||
# 重新初始化·
|
||||
self.init_table_lines_data()
|
||||
line_name = self.tableWidget_lines.item(line_index,0).text()
|
||||
line_model = self.feedLine_dict.get(line_name)
|
||||
self.init_table_positions_data(line_model.positions)
|
||||
self.selected_line_section = line_name
|
||||
self.label_table_line_position_title.setText(line_model.name)
|
||||
|
||||
def init_table_position(self):
|
||||
#self.tableWidget_line_positions.setRowCount(5)
|
||||
self.tableWidget_line_positions.setColumnCount(12)
|
||||
|
||||
self.tableWidget_line_positions.setHorizontalHeaderLabels(["节段","X","Y","Z","U","V","W","类型","序号","排序","线号","操作2"])
|
||||
self.tableWidget_line_positions.setSelectionBehavior(QTableWidget.SelectRows)
|
||||
self.tableWidget_line_positions.setColumnHidden(0, True)
|
||||
self.tableWidget_line_positions.setColumnHidden(8,True)
|
||||
self.tableWidget_line_positions.setColumnHidden(9, True)
|
||||
self.tableWidget_line_positions.setColumnHidden(10, True)
|
||||
self.tableWidget_line_positions.setAutoScroll(True)
|
||||
self.tableWidget_line_positions.verticalHeader().hide()
|
||||
# 自动调整列宽
|
||||
header = self.tableWidget_line_positions.horizontalHeader()
|
||||
header.setSectionResizeMode(0, PySide6.QtWidgets.QHeaderView.ResizeMode.Stretch)
|
||||
self.tableWidget_line_positions.setHorizontalScrollBarPolicy(PySide6.QtCore.Qt.ScrollBarPolicy.ScrollBarAsNeeded)
|
||||
for i in range(12):
|
||||
header.setSectionResizeMode(i, PySide6.QtWidgets.QHeaderView.ResizeMode.Stretch)
|
||||
self.tableWidget_line_positions.setContextMenuPolicy(PySide6.QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
self.tableWidget_line_positions.customContextMenuRequested.connect(self.show_positions_context_menu)
|
||||
|
||||
def init_table_positions_data(self,position_list):
|
||||
for index,position_model in enumerate(position_list):
|
||||
self.tableWidget_line_positions.insertRow(self.tableWidget_line_positions.rowCount())
|
||||
self.set_positionModel_to_tabel(index,position_model)
|
||||
|
||||
def show_positions_context_menu(self):
|
||||
menu = QMenu(self)
|
||||
action_add = menu.addAction("添加位置节点")
|
||||
action_del = menu.addAction("删除位置节点")
|
||||
action = menu.exec(QCursor.pos())
|
||||
if action == action_add:
|
||||
self.add_new_position()
|
||||
elif action == action_del:
|
||||
self.del_position()
|
||||
|
||||
def del_position(self):
|
||||
if self.tableWidget_line_positions.rowCount()==0:
|
||||
return
|
||||
if self.tableWidget_line_positions.currentRow()==-1:
|
||||
return
|
||||
self.tableWidget_line_positions.removeRow(self.tableWidget_line_positions.currentRow())
|
||||
self.table_position_changed = True
|
||||
|
||||
def add_new_position(self):# 选中添加
|
||||
config_reader = configparser.ConfigParser()
|
||||
config_reader.read(Constant.feedLine_set_file, encoding = 'utf-8')
|
||||
position_model = PositionModel(999)
|
||||
for i in range(1,Constant.MAX_Position_num):
|
||||
if not config_reader.has_section(f"{Constant.position_set_section}{i}"):
|
||||
position_model = PositionModel(i)
|
||||
break
|
||||
if self.tableWidget_line_positions.currentRow()==-1:
|
||||
row_i = self.tableWidget_line_positions.rowCount()
|
||||
else:
|
||||
row_i = self.tableWidget_line_positions.currentRow()
|
||||
|
||||
self.tableWidget_line_positions.insertRow(row_i)
|
||||
|
||||
position_model.order = 0
|
||||
position_model.status = FeedStatus.FStart
|
||||
|
||||
line_model = self.feedLine_dict.get(self.selected_line_section)
|
||||
line_id = line_model.id
|
||||
position_model.lineId = line_id
|
||||
self.set_positionModel_to_tabel(row_i,position_model)
|
||||
self.table_line_changed = True
|
||||
|
||||
def tabel_get_position(self,row_i):
|
||||
self.set_position_to_tabel(row_i,self.status_address.getRealPosition())
|
||||
self.table_line_changed = True
|
||||
|
||||
def tabel_delete_position(self,row_i):
|
||||
self.tableWidget_line_positions.removeRow(row_i)
|
||||
self.table_line_changed = True
|
||||
|
||||
def set_positionModel_to_tabel(self,row_i,position_model:PositionModel):
|
||||
self.tableWidget_line_positions.setItem(row_i,0,QTableWidgetItem(str(position_model.section)))
|
||||
self.set_position_tabel(row_i,position_model.get_position())
|
||||
combox = QComboBox()
|
||||
combox.addItem("初始化点", 1)
|
||||
combox.addItem("中间点", 3)
|
||||
combox.addItem("相机/待抓点",4)
|
||||
combox.addItem("抓取",5)
|
||||
combox.addItem("破带点1",6)
|
||||
combox.addItem("破带点2",7)
|
||||
combox.addItem("震动点",8)
|
||||
combox.addItem("扔带点",9)
|
||||
combox.setCurrentIndex(position_model.status)
|
||||
combox.currentIndexChanged.connect(self.send_table_position_status_changed)
|
||||
self.tableWidget_line_positions.setCellWidget(row_i, 7, combox)
|
||||
#self.tableWidget_line_positions.setItem(row_i, 7, QTableWidgetItem(str(position_model.status)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 8, QTableWidgetItem(str(position_model.id)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 9, QTableWidgetItem(str(position_model.order)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 10, QTableWidgetItem(str(position_model.lineId)))
|
||||
|
||||
get_pos_btn = QPushButton("获取点位")
|
||||
get_pos_btn.clicked.connect(
|
||||
lambda _, index=row_i: self.tabel_get_position(index))
|
||||
self.tableWidget_line_positions.setCellWidget(row_i, 11, get_pos_btn)
|
||||
# del_pos_btn = QPushButton("删除点位")
|
||||
# del_pos_btn.clicked.connect(lambda _, index=row_i: self.tabel_delete_position(index))
|
||||
# self.tableWidget_line_positions.setCellWidget(row_i, 12, del_pos_btn)
|
||||
def send_table_position_status_changed(self):
|
||||
self.table_position_changed = True
|
||||
|
||||
def set_position_tabel(self, row_i, position):
|
||||
self.tableWidget_line_positions.setItem(row_i, 1, QTableWidgetItem(str(position.X)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 2, QTableWidgetItem(str(position.Y)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 3, QTableWidgetItem(str(position.Z)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 4, QTableWidgetItem(str(position.U)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 5, QTableWidgetItem(str(position.V)))
|
||||
self.tableWidget_line_positions.setItem(row_i, 6, QTableWidgetItem(str(position.W)))
|
||||
|
||||
#endregion
|
||||
def init_qss(self):
|
||||
pass
|
||||
|
||||
@ -277,13 +509,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
def init_Run(self):
|
||||
self.robotClient = None
|
||||
self.configReader = configparser.ConfigParser()
|
||||
self.detection = Detection()
|
||||
self.detection = None # Detection() #TODO 关闭图像
|
||||
self.command_position_quene = Queue()
|
||||
self.status_address = DataAddress()
|
||||
self.feedLine_dict = {}
|
||||
self.command_quene = Queue()
|
||||
self.main_threading = None
|
||||
self.detection_person = DetectionPerson()
|
||||
self.detection_person = None #DetectionPerson()
|
||||
|
||||
self.configReader.read(Constant.set_ini)
|
||||
ip = self.configReader.get('Robot_Feed', 'IPAddress')
|
||||
@ -438,57 +670,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.pushButton_tableFeedSet_save.clicked.connect(self.send_tabelFeedSet_save)
|
||||
|
||||
def init_FeedLine(self):
|
||||
line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0)
|
||||
# line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0)
|
||||
self.configReader.read(Constant.feedLine_set_file, encoding='utf-8')
|
||||
for i in range(int(line_count)):
|
||||
line_str = f'FeedLine{i + 1}'
|
||||
safe_position = Real_Position()
|
||||
broken_position1 = Real_Position()
|
||||
broken_position2 = Real_Position()
|
||||
shake_position = Real_Position()
|
||||
dropBag_position = Real_Position()
|
||||
|
||||
|
||||
|
||||
safe_position.X = float(self.configReader.get(line_str, 'SafePosition_x', fallback=0))
|
||||
safe_position.Y = float(self.configReader.get(line_str, 'SafePosition_y', fallback=0))
|
||||
safe_position.Z = float(self.configReader.get(line_str, 'SafePosition_z', fallback=0))
|
||||
safe_position.U = float(self.configReader.get(line_str, 'SafePosition_u', fallback=0))
|
||||
safe_position.V = float(self.configReader.get(line_str, 'SafePosition_v', fallback=0))
|
||||
safe_position.W = float(self.configReader.get(line_str, 'SafePosition_w', fallback=0))
|
||||
|
||||
broken_position1.X = float(self.configReader.get(line_str, 'BrokenPosition_x', fallback=0))
|
||||
broken_position1.Y = float(self.configReader.get(line_str, 'BrokenPosition_y', fallback=0))
|
||||
broken_position1.Z = float(self.configReader.get(line_str, 'BrokenPosition_z', fallback=0))
|
||||
broken_position1.U = float(self.configReader.get(line_str, 'BrokenPosition_u', fallback=0))
|
||||
broken_position1.V = float(self.configReader.get(line_str, 'BrokenPosition_v', fallback=0))
|
||||
broken_position1.W = float(self.configReader.get(line_str, 'BrokenPosition_w', fallback=0))
|
||||
|
||||
broken_position2.X = float(self.configReader.get(line_str, 'BrokenPosition2_x', fallback=0))
|
||||
broken_position2.Y = float(self.configReader.get(line_str, 'BrokenPosition2_y', fallback=0))
|
||||
broken_position2.Z = float(self.configReader.get(line_str, 'BrokenPosition2_z', fallback=0))
|
||||
broken_position2.U = float(self.configReader.get(line_str, 'BrokenPosition2_u', fallback=0))
|
||||
broken_position2.V = float(self.configReader.get(line_str, 'BrokenPosition2_v', fallback=0))
|
||||
broken_position2.W = float(self.configReader.get(line_str, 'BrokenPosition2_w', fallback=0))
|
||||
|
||||
shake_position.X = float(self.configReader.get(line_str, 'ShakePosition_x', fallback=0))
|
||||
shake_position.Y = float(self.configReader.get(line_str, 'ShakePosition_y', fallback=0))
|
||||
shake_position.Z = float(self.configReader.get(line_str, 'ShakePosition_z', fallback=0))
|
||||
shake_position.U = float(self.configReader.get(line_str, 'ShakePosition_u', fallback=0))
|
||||
shake_position.V = float(self.configReader.get(line_str, 'ShakePosition_v', fallback=0))
|
||||
shake_position.W = float(self.configReader.get(line_str, 'ShakePosition_w', fallback=0))
|
||||
|
||||
dropBag_position.X = float(self.configReader.get(line_str, 'DropBagPosition_x', fallback=0))
|
||||
dropBag_position.Y = float(self.configReader.get(line_str, 'DropBagPosition_y', fallback=0))
|
||||
dropBag_position.Z = float(self.configReader.get(line_str, 'DropBagPosition_z', fallback=0))
|
||||
dropBag_position.U = float(self.configReader.get(line_str, 'DropBagPosition_u', fallback=0))
|
||||
dropBag_position.V = float(self.configReader.get(line_str, 'DropBagPosition_v', fallback=0))
|
||||
dropBag_position.W = float(self.configReader.get(line_str, 'DropBagPosition_w', fallback=0))
|
||||
|
||||
name = self.configReader.get(line_str, 'Name', fallback='未命名')
|
||||
self.feedLine_dict[f'{Constant.feedLine_set_section}{i + 1}'] = FeedLine(i+1,name, safe_position,
|
||||
broken_position1,broken_position2,shake_position ,dropBag_position)
|
||||
self.init_seting_frame()
|
||||
for i in range(1,Constant.MAX_Line_num):
|
||||
line_str = f'{Constant.feedLine_set_section}{i}'
|
||||
if self.configReader.has_section(line_str):
|
||||
feed_line = LineModel()
|
||||
feed_line.read_line_model(config_reader=self.configReader,index=i)
|
||||
self.feedLine_dict[f'{Constant.feedLine_set_section}{i}'] = feed_line
|
||||
self.updateUI_Select_Line()
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user