数据/图像分析管理器
checkableModel、TreeViewWidget、addAnalysisWidget 和 AnalysisManager。类和方法
checkableModel 类
checkableModel 继承自 QtGui.QStandardItemModel,实现了一个可检查的模型。
方法:
test(self):测试方法(空实现)。
TreeViewWidget 类
TreeViewWidget 继承自 QWidget,实现了一个树视图组件,用于显示和管理分析任务。
方法:
__init__(self, props, parent=None):初始化树视图组件。props:属性对象,用于存储和管理配置数据。parent:父窗口。- 创建树视图和模型,并设置定时器定期更新任务状态。
createMailModel(self, parent):创建树视图模型。- 设置模型的列标题。
- 连接模型的
itemChanged信号到itchange方法。
itchange(self, item):处理模型项改变事件。item:改变的模型项。- 根据项的检查状态,启动或停止相应的分析任务,并更新属性。
killVagabonding(self, pname, pargs):终止运行的孤立进程。pname:程序名称。pargs:程序参数。- 根据操作系统,查找并终止孤立进程。
startProcess(self, name):启动分析任务。name:任务名称。- 终止同名任务后,启动新任务并记录进程对象。
endProcess(self, name):终止分析任务。name:任务名称。- 如果任务在运行,则终止进程并记录日志。
updateStatus(self):更新任务状态。- 检查进程是否仍在运行,更新任务状态和视图。
addItem(self, direc, script, Filtername, active, category, streams):添加新任务到树视图。direc:目录。script:脚本名称。Filtername:任务名称。active:任务是否激活。category:任务类别。streams:数据流。- 创建新任务项并添加到模型中。
del_current(self):删除当前选中的任务。- 获取选中的任务项并删除相应的任务和进程。
configureCurrent(self):配置当前选中的任务。- 获取选中的任务项,打开属性编辑对话框进行配置。
__del__(self):析构函数,终止所有运行中的任务。
addAnalysisWidget 类
addAnalysisWidget 继承自 QWidget,实现了一个用于添加新分析任务的组件。
方法:
__init__(self, manager, parent=None):初始化添加分析任务组件。manager:分析管理器对象。parent:父窗口。- 创建布局、按钮、文本框和下拉菜单。
update_streamlist(self, category):更新数据流列表。category:任务类别。- 根据选定的类别更新数据流下拉菜单。
addd(self):添加新任务。- 获取输入的信息,创建新任务,并添加到分析管理器中。
AnalysisManager 类
AnalysisManager 继承自 BWidget,实现了分析管理器,管理分析脚本的运行。
方法:
__init__(self, name='Analysis', parent=None):初始化分析管理器。name:管理器名称,默认为’Analysis’。parent:父窗口。- 设置属性和分析目录,初始化GUI。
initGUI(self):初始化GUI界面。- 创建添加分析任务组件和树视图组件,并设置布局。
- 添加已有任务到树视图中。
delentry(self):删除当前选中的任务。- 调用树视图的
del_current方法。
- 调用树视图的
configureFilter(self):配置当前选中的任务。- 调用树视图的
configureCurrent方法。
- 调用树视图的
主函数
代码通过创建 QApplication 实例和 AnalysisManager 窗口来执行,并启动应用程序的主循环。
def main():
app = QtWidgets.QApplication(sys.argv)
icon = QtGui.QIcon()
icon.addFile(iconpath + '/analysis.png')
app.setWindowIcon(icon)
Win = AnalysisManager()
Win.setWindowTitle('Data/Image analysis manager')
Win.show()
sys.exit(app.exec())
代码执行
该代码通过命令行执行,创建一个AnalysisManager对象,并显示数据/图像分析管理器窗口。