一、业务逻辑
1、创建结构体,存储数据;在datamodel_global.h中创建。
2、在datamodel文件夹中创建一个.h文件;
3、在SerVices文件夹中创建一个新项目(动态库项目);
4、在DataModel.h中给DataModel文件夹中创建的.h文件设置一个出口;
5、在SerVices文件夹中创建的动态库项目中增加“增删改查”的功能;
6、设置属性,包含目录、库目录、链接器(输入);
7、重新编译一下DataModel项目,然后再编译业务逻辑项目。
二、UI界面创建与布局
1、在UserInterface文件夹中,创建一个UI动态库项目;
2、在动态库项目中添加带有UI界面的“GUI”文件;
3、在UI设计师里,进行简单的控件布局,完成基本界面;
4、对UI界面进行初始化代码编写;
三、编译错误问题
1、无法打开包括文件
主要原因:没有设置文件的路径,编译器无法找到该文件。
解决方法:右击动态库项目,选择属性,VC++目录,包含目录和库目录设置需包含的文件了路径;并在链接器->输入->附加依赖项中,添加待引进的.lib库。
四、添加资源文件记录
点击资源文件夹,找到.qrc文件,并双击。得到结果如下图:
选择“add”添加图像,随后获取路径,在Resource URL中获取图片加载的路径,然后编写代码。
五、节点选取功能的实现
1、该部分功能与业务逻辑没有关系,可不用实现业务逻辑;
2、该部分分为两种,一种是shapepoint,一种是meshpoint(网格节点),所以包含两个选点的函数。
3、具体的步骤操作如下:
(1)在springElementDlg.cpp中添加下面两个函数:
2、将上面两个函数同步到SpringElementUI.cpp和.h文件中,如下:
3、在 SpringElementDlg.cpp的Init()函数内,发射一个选择点的信号给主窗体,如下:
4、在view.cxx文件中,找到getShape()函数,并在相应位置添加如下代码:(注意包含头文件)
六、OCC绘制圆形功能实现
1、需先实现业务逻辑代码,才能进行该部分内容设计。
2、在Document.cpp文件中创建ShowCreateArc(int)、ShowCreateArc(STCreateArc var)两个函数。其中,第一个函数可直接复制粘贴过来,修改好类名即可;第二个函数则自定义,按需求写入需渲染绘制的图形的代码,最后用Display()函数在视图区展示。具体如下:
void Document::ShowCreateArc(STCreateArc & var)
{
INT_TRIHEDRON_MAP::iterator iter = m_trihedronMap.find(var.id);
if (iter != m_trihedronMap.end())
{
return;
}
GC_MakeCircle C(var.pt1, var.pt2, var.pt3); //根据三点创建一个圆
Handle(AIS_Circle) anAISCirc = new AIS_Circle(C.Value());
myContext->Display(anAISCirc, Standard_True);
}
3、上述代码需包含头文件,具体如下:
#include <GC_MakeCircle.hxx>
#include <AIS_Circle.hxx>
七、release版本下断点调试设置
1、右击新添加的项目,点击属性,如下:
2、第二步,如下:
3、第三步,如下:
4、完成上述操作后,设置断点,就可以起作用了。
八,Qt QFileDialog的简单使用;
QString sFileName = QFileDialog::getOpenFileName(this,"选择文件","/","C++ files(*.cpp);;C files(*.c);;Head files(*.h)");