3DSlicer12:风格准则

xiaoxiao2021-02-28  162

1.代码风格

从VTK继承的类要保持VTK传统命名规则。VTK的代码设计标准参考如下: http://www.vtk.org/Wiki/VTK_Coding_Standards

1.1 命名风格

缩写词应该用同样大小的字母表示(全大写/全小写) RASToSlicer RasToSlicer;vtkMRML vtkMrml;vtkSlicer vTKSlicer 单词应该全拼而不是缩写 GetWindow GetWin 文件名鼻血采用‘驼峰’惯例 TestMyFeature.c Test_My_Feature.c 使用美式英语单词 Millimeter Millimetre;Color  Colour;

1.2 注释风格

头文件中注释全面的注释信息;当代码发生改变时应该及时进行标注;需要重新考虑的代码,应该用关键词‘todo’进行标记;在源代码文件中尽量不要使用注释快

1.3 功能风格

不要混淆不同层次的抽象 例如,当我们处理文件名和文件路径的时候,应该使用VTK类中的kwsys::SystemTool、Qt类中的QFileInfo/QDir、或者Python中的os.path。而不是人工进行字符串操作: QString filePath = directoryPath + ''/'' + fileName + ''.exe''; 应该采用: SystemTools::JoinPath();SystemTools::GetFilenameName(); QFileInfo(QDir directorty, QString fileName);QFileInfo::suffix();QFileInfo::absoluteFilePath(); os.path.join();os.path.splitext();os.path.abspath(); 尽量使用标准模板库,但是要遵循VTK指南 VTK中如何使用标准模板库,可以参考如下网址: http://www.vtk.org/Wiki/VTK_FAQ#Can_I_use_STL_with_VTK.3F 注意: 1.在Qt文件中,更提倡应用Qt容器类而不是标准模板库; 2.vtkCollection和std::list<vtkSmartPointer<vtkObject*>>具有相同的功能。

1.4 语言风格

C++、Python、CMake

1.5 库依赖风格

MRML类只依赖vtk和itk(并不依赖Slicer logic和Qt哦)逻辑类Logic依赖MRML存储状态逻辑类Logic能够封装vtk/itk,实现特定的Slicer任务(例如对体数据重采样后显示)GUI类依赖MRML、Logic、Qt

1.6 坐标系风格

3D世界空间坐标系采用RAS空间坐标系。世界坐标系、解剖坐标系、图像坐标系如下图: 所有的单位都是毫米millimeter

1.7 错误与警告风格

itk/vtk/qt、std::cout、std::cerr......错误日志里面所有的错误都可以根据他们的类型(debug/warning/error),利用文件过滤器找到。 Qt:qCritical()、qWarning()、qDebug() 对于Error信息使用qCritical(): if (somethingWrongHappened) { qCritical() << "I encountered an error"; return; }对于Warning信息使用qWarning(): qWarning() << "Be careful here, this is dangerous";对于Debug信息使用qDebug(): qDebug() << "This variable has the value: "<< value; VTK-based:vtkErrorMacro()、vtkWarningMacro()、vtkDebugMacro() 对于Error信息使用vtkErrorMacro(): if (somethingWrongHappened) { vtkErrorMacro("I encountered an error"); return; }对于Warning信息使用vtkWarningMacro(): vtkWarningMacro("Be careful here, this is dangerous");对于Debug信息使用vtkDebugMacro(): vtkDebugMacro("This variable has the value: "<< value);

2.UI设计准则

2.1 一般准则

微软用户交互文本准则:https://msdn.microsoft.com/en-us/library/windows/desktop/dn742478.aspx微软窗体风格和色调指南:https://msdn.microsoft.com/en-us/library/windows/desktop/dn742477.aspx

2.2 面板

Section: Section用来对参数进行分类。上图是‘Rendering module’,包含三个sections,‘Input’、‘Display’、‘Advanced...’ 默认的情况下,‘Input’和‘Advanced...’都是折叠的。 Parameter: 对齐,空间利用合理即可。

2.3 文本

首字母大写;句子压缩,简单明了;不要使用冒号 ‘:’使用美式英语,不要使用缩略词
转载请注明原文地址: https://www.6miu.com/read-28774.html

最新回复(0)