From ab2545895b7f3768c1eb9dd774bec1b672078f7b Mon Sep 17 00:00:00 2001
From: FrankCV2048 <1395405735@qq.com>
Date: Sun, 8 Sep 2024 12:13:05 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=8C=E5=96=84=E8=A1=A8=E6=A0=BC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CU/Feeding.py | 4 +-
Config/FeedLine.ini | 72 +++++++++++++++++------
Constant.py | 7 ++-
Seting.ini | 2 +-
Util/util_ini.py | 26 +++++++++
app.py | 135 +++++++++++++++++++++++++++++++++++++-------
ui_untitled.py | 52 ++++++++++++++++-
untitled.ui | 87 +++++++++++++++++++++++++++-
8 files changed, 340 insertions(+), 45 deletions(-)
create mode 100644 Util/util_ini.py
diff --git a/CU/Feeding.py b/CU/Feeding.py
index e80bfd2..9ac288b 100644
--- a/CU/Feeding.py
+++ b/CU/Feeding.py
@@ -17,12 +17,12 @@ class FeedStatus(Enum):
FFinished = 7
class FeedLine:
- def __init__(self,safe_position:Real_Position,photo_position:Real_Position,feed_position:Real_Position):
+ def __init__(self,name,safe_position:Real_Position,photo_position:Real_Position,feed_position:Real_Position):
self.safe_position = safe_position
self.photo_position = photo_position
self.feed_position = feed_position
self.take_position = None
-
+ self.name = name
class FeedingConfig:
def __init__(self, num:int, feedLine:FeedLine):
diff --git a/Config/FeedLine.ini b/Config/FeedLine.ini
index 1f28892..69157a5 100644
--- a/Config/FeedLine.ini
+++ b/Config/FeedLine.ini
@@ -1,21 +1,57 @@
[FeedLine1]
-SafePosition_x=0
-SafePosition_y=0
-SafePosition_z=1
-SafePosition_u=2
-SafePosition_v=3
-SafePosition_w=0
-PhotoPosition_x=0
-PhotoPosition_y=0
-PhotoPosition_z=5
-PhotoPosition_u=4
-PhotoPosition_v=0
-PhotoPosition_w=0
-FeedPosition_x=0
-FeedPosition_y=7
-FeedPosition_z=6
-FeedPosition_u=0
-FeedPosition_v=7
-FeedPosition_w=0
+name = 阿萨德
+safeposition_x = 0.0
+safeposition_y = 0.0
+safeposition_z = 1.0
+safeposition_u = 2.0
+safeposition_v = 3.0
+safeposition_w = 0.0
+photoposition_x = 0.0
+photoposition_y = 0.0
+photoposition_z = 5.0
+photoposition_u = 4.0
+photoposition_v = 0.0
+feedposition_x = 0.0
+feedposition_y = 7.0
+feedposition_z = 6.0
+feedposition_u = 0.0
+feedposition_v = 7.0
+[FeedLine2]
+name = 艾师傅
+safeposition_x = 0.0
+safeposition_y = 0.0
+safeposition_z = 0.0
+safeposition_u = 0.0
+safeposition_v = 0.0
+safeposition_w = 0.0
+photoposition_x = 0.0
+photoposition_y = 0.0
+photoposition_z = 0.0
+photoposition_u = 0.0
+photoposition_v = 0.0
+feedposition_x = 0.0
+feedposition_y = 0.0
+feedposition_z = 0.0
+feedposition_u = 0.0
+feedposition_v = 0.0
+
+[FeedLine3]
+name = 新增
+safeposition_x = 0.0
+safeposition_y = 0.0
+safeposition_z = 0.0
+safeposition_u = 0.0
+safeposition_v = 0.0
+safeposition_w = 0.0
+photoposition_x = 0.0
+photoposition_y = 0.0
+photoposition_z = 0.0
+photoposition_u = 0.0
+photoposition_v = 0.0
+feedposition_x = 0.0
+feedposition_y = 0.0
+feedposition_z = 0.0
+feedposition_u = 0.0
+feedposition_v = 0.0
diff --git a/Constant.py b/Constant.py
index fbc4db2..dd07493 100644
--- a/Constant.py
+++ b/Constant.py
@@ -1,3 +1,8 @@
+import os
+
position_accuracy = 0.02
manual_adjust_accuracy = 1
-speed = 10
\ No newline at end of file
+speed = 10
+feedLine_set_section = 'FeedLine'
+feedLine_set_file = f'.{os.sep}Config{os.sep}feedLine.ini'
+set_ini = 'Seting.ini'
\ No newline at end of file
diff --git a/Seting.ini b/Seting.ini
index 5fbc247..868333a 100644
--- a/Seting.ini
+++ b/Seting.ini
@@ -16,7 +16,7 @@ j5_min=-150
j5_max=+150
j6_min=-150
j6_max=+150
-LineCount=1
+LineCount=2
[Camera_Feed]
diff --git a/Util/util_ini.py b/Util/util_ini.py
new file mode 100644
index 0000000..43796c7
--- /dev/null
+++ b/Util/util_ini.py
@@ -0,0 +1,26 @@
+import configparser
+
+
+def writeFeedLine_to_ini(feedLine_dirt,file_path:str):
+ config = configparser.ConfigParser()
+ for key,value in feedLine_dirt.items():
+ config.add_section(key)
+ config.set(key,'name',value.name)
+ config.set(key,'SafePosition_x',str(value.safe_position.X))
+ config.set(key,'SafePosition_y',str(value.safe_position.Y))
+ config.set(key,'SafePosition_z',str(value.safe_position.Z))
+ config.set(key,'SafePosition_u',str(value.safe_position.U))
+ config.set(key,'SafePosition_v',str(value.safe_position.V))
+ config.set(key,'SafePosition_w',str(value.safe_position.W))
+ config.set(key,'PhotoPosition_x',str(value.photo_position.X))
+ config.set(key,'PhotoPosition_y',str(value.photo_position.Y))
+ config.set(key,'PhotoPosition_z',str(value.photo_position.Z))
+ config.set(key,'PhotoPosition_u',str(value.photo_position.U))
+ config.set(key,'PhotoPosition_v',str(value.photo_position.V))
+ config.set(key,'FeedPosition_x',str(value.feed_position.X))
+ config.set(key,'FeedPosition_y',str(value.feed_position.Y))
+ config.set(key,'FeedPosition_z',str(value.feed_position.Z))
+ config.set(key,'FeedPosition_u',str(value.feed_position.U))
+ config.set(key,'FeedPosition_v',str(value.feed_position.V))
+ config.write(open(file_path,'w',encoding='utf-8'))
+ return True
diff --git a/app.py b/app.py
index 1096295..2b750a5 100644
--- a/app.py
+++ b/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:
diff --git a/ui_untitled.py b/ui_untitled.py
index 2147d8b..ccde248 100644
--- a/ui_untitled.py
+++ b/ui_untitled.py
@@ -810,7 +810,54 @@ class Ui_MainWindow(object):
self.page_7.setObjectName(u"page_7")
self.tableWidget_feedSeting = QTableWidget(self.page_7)
self.tableWidget_feedSeting.setObjectName(u"tableWidget_feedSeting")
- self.tableWidget_feedSeting.setGeometry(QRect(10, 10, 871, 501))
+ self.tableWidget_feedSeting.setGeometry(QRect(10, 50, 871, 461))
+ self.pushButton_tableFeedSet_addRow = QPushButton(self.page_7)
+ self.pushButton_tableFeedSet_addRow.setObjectName(u"pushButton_tableFeedSet_addRow")
+ self.pushButton_tableFeedSet_addRow.setGeometry(QRect(710, 10, 75, 31))
+ self.pushButton_tableFeedSet_addRow.setStyleSheet(u"\n"
+"*{\n"
+"color: #ffffff;\n"
+"background-color: rgb(16, 133, 255);\n"
+"font: 12pt \"\u6977\u4f53\";\n"
+"border: 1px solid #dcdfe6;\n"
+"border-radius: 6px;\n"
+"}\n"
+"*:pressed\n"
+"{\n"
+"background-color: #499c8a;\n"
+"}\n"
+"")
+ self.pushButton_tableFeedSet_deleRow = QPushButton(self.page_7)
+ self.pushButton_tableFeedSet_deleRow.setObjectName(u"pushButton_tableFeedSet_deleRow")
+ self.pushButton_tableFeedSet_deleRow.setGeometry(QRect(790, 10, 75, 31))
+ self.pushButton_tableFeedSet_deleRow.setStyleSheet(u"*{\n"
+"color: #ffffff;\n"
+"background-color: #FF5722;\n"
+"font: 12pt \"\u6977\u4f53\";\n"
+"border: 1px solid #dcdfe6;\n"
+"border-radius: 6px;\n"
+"}\n"
+"*:pressed\n"
+"{\n"
+"background-color: #499c8a;\n"
+"}\n"
+"")
+ self.pushButton_tableFeedSet_save = QPushButton(self.page_7)
+ self.pushButton_tableFeedSet_save.setObjectName(u"pushButton_tableFeedSet_save")
+ self.pushButton_tableFeedSet_save.setGeometry(QRect(630, 10, 75, 31))
+ self.pushButton_tableFeedSet_save.setStyleSheet(u"\n"
+"*{\n"
+"color: #ffffff;\n"
+"background-color: #1AA094;\n"
+"font: 12pt \"\u6977\u4f53\";\n"
+"border: 1px solid #dcdfe6;\n"
+"border-radius: 6px;\n"
+"}\n"
+"*:pressed\n"
+"{\n"
+"background-color: #197971;\n"
+"}\n"
+"")
self.stackedWidget_feed.addWidget(self.page_7)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QWidget()
@@ -952,6 +999,9 @@ class Ui_MainWindow(object):
self.lineEdit_speed.setPlaceholderText(QCoreApplication.translate("MainWindow", u"\u8f93\u5165\u6574\u6570\uff0c\u5207\u52ff\u8d85\u901f", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"\u5f53\u524d\u81ea\u52a8\u901f\u5ea6\uff1a", None))
self.pushButton_speed.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
+ self.pushButton_tableFeedSet_addRow.setText(QCoreApplication.translate("MainWindow", u"\u65b0\u589e\u7ebf", None))
+ self.pushButton_tableFeedSet_deleRow.setText(QCoreApplication.translate("MainWindow", u"\u5220\u9664\u7ebf", None))
+ self.pushButton_tableFeedSet_save.setText(QCoreApplication.translate("MainWindow", u"\u4fdd\u5b58", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("MainWindow", u"\u6295\u6599", None))
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
self.pushButton.setText(QCoreApplication.translate("MainWindow", u"PushButton", None))
diff --git a/untitled.ui b/untitled.ui
index bb57fad..59ca209 100644
--- a/untitled.ui
+++ b/untitled.ui
@@ -1761,12 +1761,95 @@ font: 10pt "楷体";
10
- 10
+ 50
871
- 501
+ 461
+
+
+
+ 710
+ 10
+ 75
+ 31
+
+
+
+
+*{
+color: #ffffff;
+background-color: rgb(16, 133, 255);
+font: 12pt "楷体";
+border: 1px solid #dcdfe6;
+border-radius: 6px;
+}
+*:pressed
+{
+background-color: #499c8a;
+}
+
+
+
+ 新增线
+
+
+
+
+
+ 790
+ 10
+ 75
+ 31
+
+
+
+ *{
+color: #ffffff;
+background-color: #FF5722;
+font: 12pt "楷体";
+border: 1px solid #dcdfe6;
+border-radius: 6px;
+}
+*:pressed
+{
+background-color: #499c8a;
+}
+
+
+
+ 删除线
+
+
+
+
+
+ 630
+ 10
+ 75
+ 31
+
+
+
+
+*{
+color: #ffffff;
+background-color: #1AA094;
+font: 12pt "楷体";
+border: 1px solid #dcdfe6;
+border-radius: 6px;
+}
+*:pressed
+{
+background-color: #197971;
+}
+
+
+
+ 保存
+
+