update 完善表格
This commit is contained in:
135
app.py
135
app.py
@ -8,9 +8,9 @@ from PyQt5.uic.properties import QtWidgets
|
||||
from PySide6.QtCore import QThread, Signal, Slot, QObject, QEvent
|
||||
from PySide6.QtGui import QIntValidator, QStandardItemModel, QStandardItem, Qt
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QHeaderView, QTableWidget, \
|
||||
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView
|
||||
QTableWidgetItem, QWidget, QHBoxLayout, QAbstractItemView, QMessageBox
|
||||
from datetime import datetime
|
||||
|
||||
from Util.util_ini import writeFeedLine_to_ini
|
||||
import Constant
|
||||
from CU.Command import FeedCommand
|
||||
from CU.Feeding import FeedLine, FeedingConfig, Feeding, FeedStatus
|
||||
@ -105,7 +105,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.command_quene = Queue()
|
||||
self.main_threading = None
|
||||
|
||||
self.configReader.read('Seting.ini')
|
||||
self.configReader.read(Constant.set_ini)
|
||||
ip = self.configReader.get('Robot_Feed', 'IPAddress')
|
||||
port = int(self.configReader.get('Robot_Feed', 'Port'))
|
||||
|
||||
@ -125,14 +125,16 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
|
||||
def init_seting_frame(self):
|
||||
|
||||
rows = len(self.feedLine_dict.keys())+2
|
||||
rows = len(self.feedLine_dict.keys())+1
|
||||
self.tableWidget_feedSeting.setRowCount(rows)
|
||||
self.tableWidget_feedSeting.setColumnCount(19)
|
||||
# 设置第一重表头的合并 (三列一组)
|
||||
self.tableWidget_feedSeting.setSpan(0, 1, 1, 6) # 合并前3列
|
||||
self.tableWidget_feedSeting.setSpan(0, 7, 1, 6) # 合并后3列
|
||||
self.tableWidget_feedSeting.setSpan(0, 13, 1, 6) # 合并后3列
|
||||
self.tableWidget_feedSeting_addtional_col_num = 2
|
||||
|
||||
self.tableWidget_feedSeting.setSpan(0, 0+self.tableWidget_feedSeting_addtional_col_num, 1, 6) # 合并前3列
|
||||
self.tableWidget_feedSeting.setSpan(0, 6+self.tableWidget_feedSeting_addtional_col_num, 1, 6) # 合并后3列
|
||||
self.tableWidget_feedSeting.setSpan(0, 12+self.tableWidget_feedSeting_addtional_col_num, 1, 6) # 合并后3列
|
||||
self.tableWidget_feedSeting.itemChanged.connect(self.send_tabelFeedSet_itemChanged)
|
||||
|
||||
|
||||
btn_safe = QPushButton("获取安全位置")
|
||||
@ -170,28 +172,34 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
btn_feed.clicked.connect(self.send_get_feed_position_button_click)
|
||||
# 添加第一重表头项
|
||||
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 1, widget_safe)
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 7, widget_photo)
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 13, widget_feed) # 设置在合并的第2组
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 0+self.tableWidget_feedSeting_addtional_col_num, widget_safe)
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 6+self.tableWidget_feedSeting_addtional_col_num, widget_photo)
|
||||
self.tableWidget_feedSeting.setCellWidget(0, 12+self.tableWidget_feedSeting_addtional_col_num, widget_feed) # 设置在合并的第2组
|
||||
|
||||
self.tableWidget_feedSeting.setSelectionBehavior(QTableWidget.SelectRows)
|
||||
self.tableWidget_feedSeting.setAutoScroll(True)
|
||||
# 添加第二重表头
|
||||
self.tableWidget_feedSeting.setHorizontalHeaderLabels(['header','X1','Y1','Z1','U1','V1','W1','X2','Y2','Z2','U2','V2','W2','X3','Y3','Z3','U3','V3','W3'])
|
||||
self.tableWidget_feedSeting.setHorizontalHeaderLabels(['header','线名','X1','Y1','Z1','U1','V1','W1','X2','Y2','Z2','U2','V2','W2','X3','Y3','Z3','U3','V3','W3'])
|
||||
|
||||
self.tableWidget_feedSeting.hideColumn(0)
|
||||
# 填充数据行
|
||||
for row,(feed_line_key,feed_line)in enumerate(self.feedLine_dict.items()):
|
||||
self.tableWidget_feedSeting.setItem(row+1, 0, QTableWidgetItem(feed_line_key))
|
||||
self.tableWidget_feedSeting.setItem(row+1, 1, QTableWidgetItem(feed_line.name))
|
||||
self.set_position_to_tabel(row+1, 0, feed_line.safe_position)
|
||||
self.set_position_to_tabel(row+1, 1, feed_line.photo_position)
|
||||
self.set_position_to_tabel(row+1, 2, feed_line.feed_position)
|
||||
|
||||
# 禁用自动表头
|
||||
self.tableWidget_feedSeting.verticalHeader().setVisible(True)
|
||||
self.pushButton_tableFeedSet_addRow.clicked.connect(self.send_tabelFeedSet_addRow)
|
||||
self.pushButton_tableFeedSet_deleRow.clicked.connect(self.send_tabelFeedSet_delRow)
|
||||
self.pushButton_tableFeedSet_save.clicked.connect(self.send_tabelFeedSet_save)
|
||||
|
||||
|
||||
def init_FeedLine(self):
|
||||
line_count = self.configReader.get('Robot_Feed', 'LineCount', fallback=0)
|
||||
self.configReader.read('Config/FeedLine.ini')
|
||||
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()
|
||||
@ -220,7 +228,8 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
feed_position.V = float(self.configReader.get(line_str, 'FeedPosition_v', fallback=0))
|
||||
feed_position.W = float(self.configReader.get(line_str, 'FeedPosition_w', fallback=0))
|
||||
|
||||
self.feedLine_dict[str(i+1)] = FeedLine(safe_position, photo_position, feed_position)
|
||||
name = self.configReader.get(line_str, 'Name', fallback='未命名')
|
||||
self.feedLine_dict[f'{Constant.feedLine_set_section}{i+1}'] = FeedLine(name ,safe_position, photo_position, feed_position)
|
||||
self.init_seting_frame()
|
||||
pass
|
||||
|
||||
@ -274,7 +283,7 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
def send_startFeed_button_click(self):
|
||||
num = self.horizontalSlider_feedingNum.maximum()
|
||||
line_index = str(self.comboBox_lineIndex.currentIndex()+1)
|
||||
self.command_quene.put(FeedCommand(FeedingConfig(num, self.feedLine_dict[line_index])))
|
||||
self.command_quene.put(FeedCommand(FeedingConfig(num, self.feedLine_dict[f'{Constant.feedLine_set_section}{1}'])))
|
||||
self.stackedWidget_num.setCurrentIndex(1)
|
||||
|
||||
def send_num_button_click(self):
|
||||
@ -426,6 +435,92 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.feedLine_dict[head].feed_position.init_position(real_position.X, real_position.Y, real_position.Z, real_position.U, real_position.V, real_position.W)
|
||||
self.set_position_to_tabel(row_i, 2, real_position)
|
||||
|
||||
def send_tabelFeedSet_addRow(self):
|
||||
for i in range(1,20):
|
||||
head = f'{Constant.feedLine_set_section}{i}'
|
||||
if head not in self.feedLine_dict:
|
||||
row_position = self.tableWidget_feedSeting.rowCount() # 当前行数
|
||||
self.tableWidget_feedSeting.insertRow(row_position)
|
||||
safe_position = Real_Position()
|
||||
photo_position = Real_Position()
|
||||
feed_position = Real_Position()
|
||||
self.feedLine_dict[head] = FeedLine('新建', safe_position, photo_position, feed_position)
|
||||
self.tableWidget_feedSeting.setItem(self.tableWidget_feedSeting.rowCount() - 1, 0,
|
||||
QTableWidgetItem(head))
|
||||
self.tableWidget_feedSeting.setItem(self.tableWidget_feedSeting.rowCount() - 1, 1,
|
||||
QTableWidgetItem('新建'))
|
||||
self.set_position_to_tabel(self.tableWidget_feedSeting.rowCount() - 1, 0, safe_position)
|
||||
self.set_position_to_tabel(self.tableWidget_feedSeting.rowCount() - 1, 1, photo_position)
|
||||
self.set_position_to_tabel(self.tableWidget_feedSeting.rowCount() - 1, 2, feed_position)
|
||||
break
|
||||
|
||||
def send_tabelFeedSet_delRow(self):
|
||||
selectRow = self.tableWidget_feedSeting.currentRow()
|
||||
if selectRow >= 0:
|
||||
for feed_line_key, feed_line in self.feedLine_dict.items():
|
||||
if feed_line_key == self.tableWidget_feedSeting.item(selectRow, 0).text():
|
||||
self.feedLine_dict.pop(feed_line_key)
|
||||
self.tableWidget_feedSeting.removeRow(selectRow)
|
||||
break
|
||||
else:
|
||||
QMessageBox.information(self, "提示", "请选择要删除的行")
|
||||
|
||||
def send_tabelFeedSet_save(self):
|
||||
count = len(self.feedLine_dict.keys())
|
||||
self.configReader.read(Constant.set_ini)
|
||||
self.configReader.set('Robot_Feed', 'LineCount', str(count))
|
||||
writeFeedLine_to_ini(self.feedLine_dict, Constant.feedLine_set_file)
|
||||
pass
|
||||
|
||||
def send_tabelFeedSet_itemChanged(self, item):
|
||||
row = item.row()
|
||||
column = item.column()
|
||||
value = item.text()
|
||||
head = self.tableWidget_feedSeting.item(row, 0).text()
|
||||
if column == 1:
|
||||
self.feedLine_dict[head].name = value
|
||||
elif column==(0+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.X = float(value)
|
||||
elif column == (1+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.Y = float(value)
|
||||
elif column == (2+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.Z = float(value)
|
||||
elif column == (3+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.U = float(value)
|
||||
elif column == (4+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.V = float(value)
|
||||
elif column == (5+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].safe_position.W = float(value)
|
||||
# elif column == 7:
|
||||
elif column==(6+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.X = float(value)
|
||||
elif column == (7+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.Y = float(value)
|
||||
elif column == (8+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.Z = float(value)
|
||||
elif column == (9+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.U = float(value)
|
||||
elif column == (10+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.V = float(value)
|
||||
elif column == (11+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].photo_position.W = float(value)
|
||||
|
||||
elif column==(12+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.X = float(value)
|
||||
elif column == (13+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.Y = float(value)
|
||||
elif column == (14+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.Z = float(value)
|
||||
elif column == (15+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.U = float(value)
|
||||
elif column == (16+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.V = float(value)
|
||||
elif column == (17+self.tableWidget_feedSeting_addtional_col_num):
|
||||
self.feedLine_dict[head].feed_position.W = float(value)
|
||||
|
||||
|
||||
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
time.sleep(0.2)
|
||||
@ -477,12 +572,12 @@ class MainWindow(QMainWindow,Ui_MainWindow):
|
||||
self.label_j6.setText(str(self.status_address.axis_5))
|
||||
|
||||
def set_position_to_tabel(self,row_i,position_j,real_Position:Real_Position):
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+1, QTableWidgetItem(str(real_Position.X)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+1+1, QTableWidgetItem(str(real_Position.Y)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+2+1, QTableWidgetItem(str(real_Position.Z)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+3+1, QTableWidgetItem(str(real_Position.U)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+4+1, QTableWidgetItem(str(real_Position.V)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+5+1, QTableWidgetItem(str(real_Position.W)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+self.tableWidget_feedSeting_addtional_col_num, QTableWidgetItem(str(real_Position.X)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+1+self.tableWidget_feedSeting_addtional_col_num, QTableWidgetItem(str(real_Position.Y)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+2+self.tableWidget_feedSeting_addtional_col_num, QTableWidgetItem(str(real_Position.Z)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+3+self.tableWidget_feedSeting_addtional_col_num, QTableWidgetItem(str(real_Position.U)))
|
||||
self.tableWidget_feedSeting.setItem(row_i, position_j*6+4+self.tableWidget_feedSeting_addtional_col_num, 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 set_label_status_style(self, connected: bool):
|
||||
if connected:
|
||||
|
||||
Reference in New Issue
Block a user