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$"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" /> <excludeFolder url="file://$MODULE_DIR$/venv" />
</content> </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" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
</module> </module>

2
.idea/misc.xml generated
View File

@ -3,5 +3,5 @@
<component name="Black"> <component name="Black">
<option name="sdkName" value="detect-gui" /> <option name="sdkName" value="detect-gui" />
</component> </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> </project>

View File

@ -3,12 +3,16 @@ import sqlite3
from dynaconf.base import Settings from dynaconf.base import Settings
from exceptiongroup import catch from exceptiongroup import catch
from PyQt5.QtCore import QObject, pyqtSignal
from core.edge_component import EdgeComponent, action, service from core.edge_component import EdgeComponent, action, service
class TaskTableSignals(QObject):
# QT 信号
on_receive_task = pyqtSignal()
@action("dat_task", auto_start=True) @action("dat_task", auto_start=True)
class TaskTable(EdgeComponent): class TaskTable(EdgeComponent):
signals = TaskTableSignals()
def __init__(self, context): def __init__(self, context):
super(TaskTable, self).__init__(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']) (task['id'], task['name'], task['deviceSn'], task['paramJson'], task['state'], task['createTime'], task['updateTime'])
) )
conn.commit() conn.commit()
self.signals.on_receive_task.emit()
except Exception as e: except Exception as e:
self.logger.error(e) self.logger.error(e)
finally: finally:

View File

@ -98,8 +98,10 @@ class DetectWindow(QMainWindow):
self.battery_change(self.battery) self.battery_change(self.battery)
# 设置窗口默认全屏 # 设置窗口默认全屏
self.resize(1024, 768) # self.resize(1024, 768)
# self.showFullScreen() # self.showFullScreen()
self.setWindowState(Qt.WindowMaximized)
# #
def init_signals(self): def init_signals(self):
ups = AppContext.get_edge_context().get_component('ups') ups = AppContext.get_edge_context().get_component('ups')

View File

@ -4,7 +4,7 @@ from datetime import datetime
import pandas as pd import pandas as pd
from PyQt5.QtCore import Qt, QRect from PyQt5.QtCore import Qt, QRect
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QLineEdit, QLabel, QHBoxLayout, QPushButton, QFileDialog, \ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QGridLayout, QLineEdit, QLabel, QHBoxLayout, QPushButton, QFileDialog, \
QScrollArea, QPlainTextEdit QScrollArea, QPlainTextEdit, QMessageBox
from core.context import AppContext from core.context import AppContext
from widget.task_run import TaskRunDialog from widget.task_run import TaskRunDialog
@ -16,8 +16,6 @@ class TaskListWidget(QWidget):
self.ratio = AppContext.get_ratio() self.ratio = AppContext.get_ratio()
self.run_dialog = None self.run_dialog = None
widget = QWidget()
scroll_area = QScrollArea() scroll_area = QScrollArea()
scroll_area.setStyleSheet("border: none;") scroll_area.setStyleSheet("border: none;")
scroll_area.setWidgetResizable(True) scroll_area.setWidgetResizable(True)
@ -28,6 +26,7 @@ class TaskListWidget(QWidget):
scroll_area.setWidget(self.content_widget) scroll_area.setWidget(self.content_widget)
widget = QWidget()
widget_layout = QVBoxLayout(widget) widget_layout = QVBoxLayout(widget)
widget_layout.setContentsMargins(10, 10, 10, 10) widget_layout.setContentsMargins(10, 10, 10, 10)
widget_layout.setSpacing(0) widget_layout.setSpacing(0)
@ -38,12 +37,16 @@ class TaskListWidget(QWidget):
layout.setSpacing(0) layout.setSpacing(0)
layout.addWidget(widget) 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") task_table = AppContext.get_edge_context().get_component("dat_task")
tasks = task_table.list_task(1) tasks = task_table.list_task(1)
if len(tasks) == 0:
return
self.content_widget.children().clear()
# 添加 TITLE # 添加 TITLE
x = 0 x = 0
y = 0 y = 0
@ -121,18 +124,24 @@ class TaskListWidget(QWidget):
run_task.setGeometry(QRect(x, y, 120, 30)) run_task.setGeometry(QRect(x, y, 120, 30))
run_task.clicked.connect(lambda: self.start_task(task)) run_task.clicked.connect(lambda: self.start_task(task))
# run_task.clicked.connect(self.start_task)
y = y + 120 + offset y = y + 120 + offset
self.content_widget.setFixedHeight(y + 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): def start_task(self, task):
task_table = AppContext.get_edge_context().get_component("dat_task") task_table = AppContext.get_edge_context().get_component("dat_task")
task_table.update_task({ "id": task[0], "state": 1, "start_time": datetime.now() }) task_table.update_task({ "id": task[0], "state": 1, "start_time": datetime.now() })
self.run_dialog = TaskRunDialog(json.loads(task[3])) try:
dialog_result = self.run_dialog.exec_() param_json = json.loads(task[3])
if dialog_result == 0: self.run_dialog = TaskRunDialog(param_json)
c = 0 dialog_result = self.run_dialog.exec_()
# self.name_text.setText(None) if dialog_result == 0:
# self.file_content.setPlainText(None) 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.ratio = AppContext.get_ratio()
self.checkIndex = 1 self.checkIndex = 1
self.param = param self.param = param
self.setWindowState(Qt.WindowMaximized)
self.setWindowFlags(Qt.WindowStaysOnTopHint) self.setWindowFlags(Qt.WindowStaysOnTopHint)
self.setWindowFlags(Qt.FramelessWindowHint) self.setWindowFlags(Qt.FramelessWindowHint)
self.setWindowModality(Qt.ApplicationModal) self.setWindowModality(Qt.ApplicationModal)
self.setAttribute(Qt.WA_DeleteOnClose) self.setAttribute(Qt.WA_DeleteOnClose)
self.setWindowTitle("检测窗口") self.setWindowTitle("检测窗口")
self.showFullScreen()
self.bim_widget = None self.bim_widget = None
self.check_widget = None self.check_widget = None