From 661686bba85a398dff18d345c33d669410305b53 Mon Sep 17 00:00:00 2001 From: zhangxuxutm <951937200@qq.com> Date: Tue, 25 Jul 2023 16:58:20 +0800 Subject: [PATCH] =?UTF-8?q?0725=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UI/TrendManage/ActualTrendWidget.py | 36 ++++++++++++++++++----------- nuitka.txt | 2 +- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/UI/TrendManage/ActualTrendWidget.py b/UI/TrendManage/ActualTrendWidget.py index 157307d..2500ea5 100644 --- a/UI/TrendManage/ActualTrendWidget.py +++ b/UI/TrendManage/ActualTrendWidget.py @@ -6,6 +6,7 @@ from matplotlib.backends.qt_compat import QtCore, QtWidgets from matplotlib.backends.backend_qt5agg import (FigureCanvas, NavigationToolbar2QT as NavigationToolbar) from matplotlib.figure import Figure +from PyQt5.QtCore import QThread import matplotlib.ticker as ticker import matplotlib.pyplot as plt @@ -25,9 +26,9 @@ class ActualTrend(QtWidgets.QMainWindow): self.varName = varName - self._main = QtWidgets.QWidget() - self.setCentralWidget(self._main) - layout = QtWidgets.QVBoxLayout(self._main) + _main = QtWidgets.QWidget() + self.setCentralWidget(_main) + layout = QtWidgets.QVBoxLayout(_main) dynamic_canvas = FigureCanvas(Figure(figsize=(5, 3))) @@ -45,26 +46,30 @@ class ActualTrend(QtWidgets.QMainWindow): self._timer = dynamic_canvas.new_timer( 1000, [(self._update_canvas, (), {})]) self._timer.start() + + def _update_canvas(self): # self.n += 1 varName = self.varName varMM = ModbusVarManage.getByName(varName) - if varMM: - minY, maxY = ModbusVarManage.getByName(varName)[-2], ModbusVarManage.getByName(varName)[-1] + minY = -100 + maxY = 100 - if not minY or not maxY: - minY = -100 - maxY = 100 - else: - minY = float(minY) - maxY = float(maxY) + + if varMM: + minY, maxY = varMM[-2], varMM[-1] + minY = float(minY) + maxY = float(maxY) self._dynamic_ax.clear() acttime = time.strftime('%H:%M:%S', time.localtime(time.time())) # print(acttime) if varName != '': - uid = MBTCPMApp.backend.get('ModBus').decode('utf-8') + if MBTCPMApp.backend.get('ModBus') is not None: + uid = MBTCPMApp.backend.get('ModBus').decode('utf-8') + else: + return # print(uid) res = AsyncResult(uid) # 参数为task id if res.result: @@ -85,8 +90,13 @@ class ActualTrend(QtWidgets.QMainWindow): self._dynamic_ax.plot(pos_list, value_list, 'bo-', linewidth=2) # self._dynamic_ax.set_xlim(0,10) - self._dynamic_ax.set_ylim(minY,maxY) + self._dynamic_ax.set_ylim(minY, maxY) self._dynamic_ax.figure.canvas.draw() + + def closeEvent(self, event): + # 判断是否点击了窗口的关闭按钮 + if event.type() == event.Close: + self._timer.stop() if __name__ == "__main__": qapp = QtWidgets.QApplication(sys.argv) diff --git a/nuitka.txt b/nuitka.txt index 2db9b99..8a97d6d 100644 --- a/nuitka.txt +++ b/nuitka.txt @@ -1 +1 @@ -nuitka --windows-disable-console --standalone --mingw64 --show-memory --show-progress --nofollow-import-to=numpy,pandas,celery,peewee,PIL,cffi,pycparser,pyserial,pywin32,modbus_tk,matplotlib,redis,pyecharts --enable-plugin=pyqt5,numpy,eventlet,gevent,multiprocessing --include-package=model,project,protocol,UI,utils,windoweffect,redis,pythonnet,uuid,logging,openpyxl,matplotlib,importlib,prettytable --output-dir=o bin.py \ No newline at end of file +nuitka --windows-disable --mingw64 --show-memory --show-progress --nofollow-import-to=numpy,pandas,celery,peewee,PIL,cffi,pycparser,pyserial,pywin32,modbus_tk,matplotlib,redis,pyecharts --enable-plugin=pyqt5,numpy,eventlet,gevent,multiprocessing --include-package=model,project,protocol,UI,utils,windoweffect,redis,pythonnet,uuid,logging,openpyxl,matplotlib,importlib,prettytable --output-dir=o bin.py \ No newline at end of file