This commit is contained in:
njdaoyehu 2024-11-21 16:29:40 +08:00
parent 52d0f7f1ae
commit c53ac2e2cc
6 changed files with 35 additions and 19 deletions

2
.idea/detect-gui.iml generated
View File

@ -4,7 +4,7 @@
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="detect-gui" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="detect-gui-env" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

2
.idea/misc.xml generated
View File

@ -3,5 +3,5 @@
<component name="Black">
<option name="sdkName" value="detect-gui" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="detect-gui" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="detect-gui-env" project-jdk-type="Python SDK" />
</project>

View File

@ -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:

View File

@ -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')

View File

@ -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)
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}')

View File

@ -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