diff --git a/.idea/detect-gui.iml b/.idea/detect-gui.iml
index 80f67ae..a1b377a 100644
--- a/.idea/detect-gui.iml
+++ b/.idea/detect-gui.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 66b3d02..9f2e3a2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/components/dat_task.py b/components/dat_task.py
index 5f97c36..b6accd4 100644
--- a/components/dat_task.py
+++ b/components/dat_task.py
@@ -3,12 +3,16 @@ import sqlite3
from dynaconf.base import Settings
from exceptiongroup import catch
-
+from PyQt5.QtCore import QObject, pyqtSignal
from core.edge_component import EdgeComponent, action, service
+class TaskTableSignals(QObject):
+ # QT 信号
+ on_receive_task = pyqtSignal()
@action("dat_task", auto_start=True)
class TaskTable(EdgeComponent):
+ signals = TaskTableSignals()
def __init__(self, context):
super(TaskTable, self).__init__(context)
@@ -128,6 +132,7 @@ class TaskTable(EdgeComponent):
(task['id'], task['name'], task['deviceSn'], task['paramJson'], task['state'], task['createTime'], task['updateTime'])
)
conn.commit()
+ self.signals.on_receive_task.emit()
except Exception as e:
self.logger.error(e)
finally:
diff --git a/main.py b/main.py
index 565a7be..4195225 100644
--- a/main.py
+++ b/main.py
@@ -98,8 +98,10 @@ class DetectWindow(QMainWindow):
self.battery_change(self.battery)
# 设置窗口默认全屏
- self.resize(1024, 768)
+ # self.resize(1024, 768)
# self.showFullScreen()
+ self.setWindowState(Qt.WindowMaximized)
+
#
def init_signals(self):
ups = AppContext.get_edge_context().get_component('ups')
diff --git a/widget/task_list.py b/widget/task_list.py
index e8c578f..eb16eb9 100644
--- a/widget/task_list.py
+++ b/widget/task_list.py
@@ -4,7 +4,7 @@ from datetime import datetime
import pandas as pd
from PyQt5.QtCore import Qt, QRect
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QLineEdit, QLabel, QHBoxLayout, QPushButton, QFileDialog, \
- QScrollArea, QPlainTextEdit
+ QScrollArea, QPlainTextEdit, QMessageBox
from core.context import AppContext
from widget.task_run import TaskRunDialog
@@ -16,8 +16,6 @@ class TaskListWidget(QWidget):
self.ratio = AppContext.get_ratio()
self.run_dialog = None
- widget = QWidget()
-
scroll_area = QScrollArea()
scroll_area.setStyleSheet("border: none;")
scroll_area.setWidgetResizable(True)
@@ -28,6 +26,7 @@ class TaskListWidget(QWidget):
scroll_area.setWidget(self.content_widget)
+ widget = QWidget()
widget_layout = QVBoxLayout(widget)
widget_layout.setContentsMargins(10, 10, 10, 10)
widget_layout.setSpacing(0)
@@ -38,12 +37,16 @@ class TaskListWidget(QWidget):
layout.setSpacing(0)
layout.addWidget(widget)
- self.initUi()
+ self.init_ui()
- def initUi(self):
+ AppContext.get_edge_context().get_component('dat_task').signals.on_receive_task.connect(self.init_ui)
+
+ def init_ui(self):
task_table = AppContext.get_edge_context().get_component("dat_task")
tasks = task_table.list_task(1)
-
+ if len(tasks) == 0:
+ return
+ self.content_widget.children().clear()
# 添加 TITLE
x = 0
y = 0
@@ -121,18 +124,24 @@ class TaskListWidget(QWidget):
run_task.setGeometry(QRect(x, y, 120, 30))
run_task.clicked.connect(lambda: self.start_task(task))
- # run_task.clicked.connect(self.start_task)
-
y = y + 120 + offset
self.content_widget.setFixedHeight(y + offset)
+ for ctl in self.content_widget.children():
+ if isinstance(ctl, QWidget):
+ ctl.setVisible(True)
+
def start_task(self, task):
task_table = AppContext.get_edge_context().get_component("dat_task")
task_table.update_task({ "id": task[0], "state": 1, "start_time": datetime.now() })
- self.run_dialog = TaskRunDialog(json.loads(task[3]))
- dialog_result = self.run_dialog.exec_()
- if dialog_result == 0:
- c = 0
- # self.name_text.setText(None)
- # self.file_content.setPlainText(None)
\ No newline at end of file
+ try:
+ param_json = json.loads(task[3])
+ self.run_dialog = TaskRunDialog(param_json)
+ dialog_result = self.run_dialog.exec_()
+ if dialog_result == 0:
+ c = 0
+ # self.name_text.setText(None)
+ # self.file_content.setPlainText(None)
+ except Exception as e:
+ QMessageBox.warning(self, 'JSON Error', f'Invalid JSON: {e}')
\ No newline at end of file
diff --git a/widget/task_run.py b/widget/task_run.py
index 6048a77..9ef726b 100644
--- a/widget/task_run.py
+++ b/widget/task_run.py
@@ -12,12 +12,12 @@ class TaskRunDialog(QDialog):
self.ratio = AppContext.get_ratio()
self.checkIndex = 1
self.param = param
- self.setWindowState(Qt.WindowMaximized)
self.setWindowFlags(Qt.WindowStaysOnTopHint)
self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowModality(Qt.ApplicationModal)
self.setAttribute(Qt.WA_DeleteOnClose)
self.setWindowTitle("检测窗口")
+ self.showFullScreen()
self.bim_widget = None
self.check_widget = None