From 744bc4eb2f1d48ef75c3c84c92e5555280c45513 Mon Sep 17 00:00:00 2001 From: zhu-mengmeng <15588200382@163.com> Date: Sat, 19 Jul 2025 08:19:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E5=A4=8D=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=A1=86=E8=8E=B7=E5=8F=96=E5=80=BC=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/jtDB.db | Bin 172032 -> 172032 bytes from pymodbus.py | 2 +- widgets/main_window.py | 49 +++++++++++++++-------------------------- 3 files changed, 19 insertions(+), 32 deletions(-) diff --git a/db/jtDB.db b/db/jtDB.db index 8233ffc651ee53d7ac714fa254fc3c69964ff7fc..6546766af291dad7e950d76b7694b88855a87309 100644 GIT binary patch delta 2047 zcmb7_&rj1}7{~jzV;!(=gKcSw6Nxb~!E9;Yw_VwcvJqn<2TfpZ8WQ6ajWGe#fr!5t zF?opzMwT9Sf`|t&o@6_4@WMgVBQY^SJ^2?HF5C=uZ4F!3k?ztSzE3~z_j$k1`!>JX zmfvh!>>`8Rh0uWdT)+PFEa+5D_a6t}m23UjIlwWLL@JBU07>Ob2}i>1@BqR)?Ik=f zJ)rE%?=rJ)>X$lME3j!B&yp2B%JdEmsfyg&v~= z&X3MfXM0Pj<%(n9vFf-)?NLkQU8o#$Zh z6=IoavyDAAyQ$m&3{z>$K=D>NYA35YM=_0OtWa)u^Qa7dq@n7@OIcY7H0w&e@YG2? zEIHc^J~X4MlCud(;VBhzSaLQ&X*_9mV@?j*Jl1KPvqI^~>C2@zDLh`B`vF*m`5P?m?||NoZ#w|aQw!j0ncn7r tdL_QQ!xk<(2;{20$|WfdWwwyARuEelu2)oJLX<5GSu4T@e}mjU^AE8p^cVmD delta 507 zcmZoTz}0YoYl0M$$ghbqPC#;F!Yw;S{>j$%N{kmL$Jw{BIZE;}n=(zFz$U`PoVUq= z#es*Bznp=;oM#aTZWd_x$ZKR^WU6amu4`bZU}#`vVrpe-q-SVmU}$E7OU8WqM1CgW zXk^9ahQ*b|C8@a#3=DbvK)}oE=qTwZ$zcctXvUaW85ro9n3x$E;FPfdTTlz(0W*z^92kE;&*^raX8$YB z)V}8JM2K_DbdAgu3@xk-O{`2U^vsRTO-z9<0)+%z#sw~A2DKbb0fs!#_jAx3x4FE( zSAkiRao%M14Z)iQ1zZ@L=WX0RZzE%}92?Jc22qa6>FgI6wShA39LynYdD9zjGKx>; m{VO{C{|!d1?U!ya8nrWbFd1xSzaYp6R3*W<-5`nSf-L|fYk|4| diff --git a/from pymodbus.py b/from pymodbus.py index 9fe4c49..9db5710 100644 --- a/from pymodbus.py +++ b/from pymodbus.py @@ -2,7 +2,7 @@ from pymodbus.client import ModbusTcpClient import time client = ModbusTcpClient('localhost', port=5020) client.connect() -client.write_registers(address=11, values=[2122]) +client.write_registers(address=11, values=[2222]) # client.write_registers(address=3, values=[0]) # time.sleep(2) # client.write_registers(address=0, values=[0]) diff --git a/widgets/main_window.py b/widgets/main_window.py index 8bae4f8..43a809f 100644 --- a/widgets/main_window.py +++ b/widgets/main_window.py @@ -27,7 +27,7 @@ from utils.electricity_monitor import ElectricityHandler from PySide6.QtWidgets import ( QWidget, QMessageBox, QTableWidgetItem, QStackedWidget, QLabel, QTableWidget, QMenu, QComboBox, QFormLayout, QDialog, QVBoxLayout, - QFrame, QHBoxLayout, QSplitter, QPushButton + QFrame, QHBoxLayout, QSplitter, QPushButton, QTextEdit ) from PySide6.QtCore import Qt, QTimer, Slot, Signal from PySide6.QtGui import QBrush, QColor @@ -739,7 +739,11 @@ class MainWindow(MainWindowUI): for field_name, label in self.info_values.items(): order_info_key = self.FIELD_MAPPING.get(field_name) if order_info_key: - order_info[order_info_key] = label.text() + # 根据控件类型选择合适的方法获取文本 + if isinstance(label, QTextEdit): + order_info[order_info_key] = label.toPlainText() + else: + order_info[order_info_key] = label.text() # 更新/补充 qd 字段 order_info["qd"] = self._current_gc_qd # 再调用 update_info_table @@ -3588,7 +3592,11 @@ class MainWindow(MainWindowUI): tqd = order_info.get("tqd") if bqd is not None and tqd is not None: value = f"{bqd} - {tqd}" - self.info_values[field_name].setText(value) + # 根据控件类型选择合适的方法设置文本 + if isinstance(self.info_values[field_name], QTextEdit): + self.info_values[field_name].setPlainText(value) + else: + self.info_values[field_name].setText(value) else: logging.warning(f"字段名 '{field_name}' 在info_values中不存在") @@ -3603,17 +3611,7 @@ class MainWindow(MainWindowUI): def handle_print_row(self): """处理打印按钮点击事件,打印选中的微丝产线表格行""" try: - # 获取当前选中的行 - selected_rows = self.process_table.selectionModel().selectedRows() - if not selected_rows: - # 如果没有选中整行,则获取当前选中的单元格所在行 - current_row = self.process_table.currentRow() - if current_row >= 2: # 确保不是表头行 - selected_rows = [self.process_table.model().index(current_row, 0)] - else: - QMessageBox.warning(self, "提示", "请先选择要打印的数据行") - return - + # 确认打印 reply = QMessageBox.question( self, @@ -3626,21 +3624,6 @@ class MainWindow(MainWindowUI): if reply != QMessageBox.Yes: return - # 获取选中的行索引(只处理第一个选中的行) - row = selected_rows[0].row() - if row < 2: # 跳过表头行 - return - - # 获取工程号(用于日志记录) - gc_note_item = self.process_table.item(row, 1) - if not gc_note_item: - QMessageBox.warning(self, "提示", "无法获取工程号信息") - return - - gc_note = gc_note_item.text().strip() - if not gc_note: - QMessageBox.warning(self, "提示", "工程号不能为空") - return # 向D12寄存器写入1,触发打印 from utils.modbus_utils import ModbusUtils @@ -3655,7 +3638,7 @@ class MainWindow(MainWindowUI): # 向D12寄存器写入1,表示打印请求 success = modbus.write_register(client, 12, 1) if success: - logging.info(f"已向D12寄存器写入1,触发打印工程号 {gc_note} 的数据") + logging.info(f"已向D12寄存器写入1") else: QMessageBox.warning(self, "警告", "发送打印请求失败,请检查PLC连接") finally: @@ -3727,12 +3710,14 @@ class MainWindow(MainWindowUI): def _log_focus_widget_info(self, widget): """记录当前焦点控件的信息,用于调试""" try: - from PySide6.QtWidgets import QLineEdit, QComboBox + from PySide6.QtWidgets import QLineEdit, QComboBox, QTextEdit widget_type = "未知" if isinstance(widget, QLineEdit): widget_type = "输入框" elif isinstance(widget, QComboBox): widget_type = "下拉框" + elif isinstance(widget, QTextEdit): + widget_type = "文本编辑框" widget_name = widget.objectName() if widget else "无" widget_text = "" @@ -3741,6 +3726,8 @@ class MainWindow(MainWindowUI): widget_text = widget.text() elif isinstance(widget, QComboBox): widget_text = widget.currentText() + elif isinstance(widget, QTextEdit): + widget_text = widget.toPlainText() logging.info(f"当前焦点控件: 类型={widget_type}, 名称={widget_name}, 文本={widget_text}") except Exception as e: