Files
mil_sdk/mil/ui/mil_project.py
T
feifei.xu f188055228 清理无用代码、合并工具链、修复注释与日志问题
- 删除破损文件: main.py/main.ui/main_ui.py
- 删除 runtime_hook.py(归宿主维护),清除 tools/ 目录
- 合并 export_runtime/pack_zip/verify_companions 到 build_pyd.py
- 修复注释: docstring 参数与实际签名不一致、过时引用、拼写错误
- 修复日志: 消除静默吞异常、删冗余 log+raise、补缺失日志
- 精简 .gitignore
2026-07-21 18:14:34 +08:00

124 lines
4.7 KiB
Python

import os
import logging
from PySide6.QtGui import *
from PySide6.QtCore import *
from PySide6.QtWidgets import *
logger = logging.getLogger(__name__)
from .mil_project_ui import Ui_FrameMILProject
from mil.core import Config
class MILProject(QFrame, Ui_FrameMILProject):
update_item_name_signal = Signal()
update_item_data_path_signal = Signal(str,str)
update_item_file_path_signal = Signal(str,str)
def __init__(self, config, name = None,parent = None):
super().__init__(parent)
self.setupUi(self)
self.initUI(config,name)
def initUI(self,config:Config, name:str):
self.lineEditDataPath.setReadOnly(True)
self.lineEditFilePath.setReadOnly(True)
self.name = name
self.config = config
self.ItemConfigs = config.ItemConfigs
if self.name is not None and self.name in self.ItemConfigs.keys():
self.lineEditName.setText(name)
self.lineEditDataPath.setText(self.ItemConfigs[self.name]["DataPath"])
self.lineEditFilePath.setText(self.ItemConfigs[self.name]["FilePath"])
else:
self.pushButtonDataPath.setEnabled(False)
self.pushButtonFilePath.setEnabled(False)
self.lineEditName.setPlaceholderText("必填项!!!")
self.lineEditDataPath.setPlaceholderText("点击【选择数据文件】按钮,选择路径!")
self.lineEditFilePath.setPlaceholderText("点击【选择测试用例】按钮,选择路径!")
self.lineEditName.editingFinished.connect(self.on_name_editing_finished_event)
self.lineEditDataPath.editingFinished.connect(self.on_datapath_editing_finished_event)
self.lineEditFilePath.editingFinished.connect(self.on_filepath_editing_finished_event)
self.pushButtonDataPath.clicked.connect(self.on_data_path_event)
self.pushButtonFilePath.clicked.connect(self.on_file_path_event)
def on_name_editing_finished_event(self):
name = self.lineEditName.text()
if name.replace(" ", "") == "":
self.lineEditName.setText(self.name)
logger.warning("项目名称是必填项!!!")
return
if name == self.name:
return
if self.name is None:
self.name = name
self.ItemConfigs[name] = dict()
self.ItemConfigs[name]["DataPath"] = ""
self.ItemConfigs[name]["FilePath"] = ""
else:
self.ItemConfigs[name] = self.ItemConfigs.pop(self.name)
if self.name == self.config.CurrProject:
self.config.CurrProject = name
self.name = name
self.config.save_config()
self.update_item_name_signal.emit()
self.pushButtonDataPath.setEnabled(True)
self.pushButtonFilePath.setEnabled(True)
def on_datapath_editing_finished_event(self):
name = self.lineEditName.text()
data_path = self.lineEditDataPath.text()
if data_path.replace(" ","") == "":
logger.warning("数据文件路径无效!")
return
self.ItemConfigs[name]["DataPath"] = data_path
self.config.save_config()
self.update_item_data_path_signal.emit(name,data_path)
def on_filepath_editing_finished_event(self):
name = self.lineEditName.text()
file_path = self.lineEditFilePath.text()
if file_path.replace(" ","") == "":
logger.warning("测试用例路径无效!")
return
self.ItemConfigs[name]["FilePath"] = file_path
self.config.save_config()
self.update_item_file_path_signal.emit(name,file_path)
def on_data_path_event(self):
dataPath = self.lineEditDataPath.text()
if os.path.exists(dataPath):
path,type = QFileDialog.getOpenFileName(self, "选择文件", dataPath,"Excel工作簿(*.xlsx)")
else:
path,type = QFileDialog.getOpenFileName(self, "选择文件", "./","Excel工作簿(*.xlsx)")
if not os.path.exists(path):
logger.debug(f"数据文件选择已取消: {dataPath}")
return
self.lineEditDataPath.setText(path)
self.on_datapath_editing_finished_event()
def on_file_path_event(self):
filePath = self.lineEditFilePath.text()
if os.path.exists(filePath):
path,type = QFileDialog.getOpenFileName(self, "选择文件", filePath,"Excel工作簿(*.xlsx)")
else:
path,type = QFileDialog.getOpenFileName(self, "选择文件", "./","Excel工作簿(*.xlsx)")
if not os.path.exists(path):
logger.debug(f"测试用例文件选择已取消: {filePath}")
return
self.lineEditFilePath.setText(path)
self.on_filepath_editing_finished_event()