网格处理平台学习笔记

    在解决方案文件夹下有一个src文件夹,里面是各个项目的源代码。进入ApplicatinGUI文件夹(整个路径为GeometryProcessing-1srcApplicationGUI)可以看到有很多以.ui为后缀的文件,这些文件就是UI设计文件。在安装了qt的电脑上双击可打开。如下图为主窗口:

为了添加自己的代码,在菜单栏新加入了一个菜单MyTest,并为其添加子菜单find_neighbors

在GeometryProcessing-1srcApplicationGUIGeneratedFilesui_geometryMainWindow.h,下会自动(不记得是不是自己添加的了。。)注册刚刚的按钮

也就是代码中,action_Find_neighbors就是我们刚刚的Find_neighbors按钮的名称

我们在GeometryProcessing-1srcApplicationGUIMenuProcessor.cpp中为按钮设置监听事件,将名为find_neighbors()函数作为点击按钮后的处理函数

在GeometryProcessing-1srcApplicationGUIMenuProcessor.h中定义一个名为find_neighbors()函数

在MenuProcessor.cpp文件中实现该函数

在上述实现函数中,我们调用了一个同样名为find_neighbors的函数(这个函数声明在 GeometryProcessSceneInterfaceSceneInterface.h中,

名字可以自己定义,但是为了规范,可以和菜单处理cpp中命名保持一致。

其定义如下:

在SceneInterface.cpp中实现上述函数

同样,我们又调用了一个和发起调用的函数同名的函数,但是这个被调用的函数的声明是在我们自己添加的项目中的

完成类的编写后,更新这个函数体如下

需要注意的是,需要在SceneInterface.h头文件中包含TestMyProject.h

接下来,在VS解决方案中添加自己的项目,即在已有的解决方案中创建新的项目,具体操作如下图,注意规范项目的放置位置

同时注意项目的属性,如果建立的是一个空项目,则最后会出现一些链接的问题。正确的建立方式如下

下面就可以为自己的项目添加代码了。

头文件内容如下,定义我们调用最底层的函数

在对应的.cpp文件中实现头文件中定义的函数

在ApplicationGUI设置为启动项目的前提下,右键点击ApplicationGUI项目,选择属性,依次点击"框架和引用" à "添加新引用"

然后可以看到添加后的引用比没添加之前多了一项。

重新生成解决方案时,出错,错误提示:找不到GeometryProcessing-1srcqtpropertybrowser-2.5_1-opensourceqtproptybrowser.lib,这是将qtpropertybrowser项目转换为qt add-in project,再生成这个工程,之后就可以生成整个解决方案了。

此外,运行这个工程最后调出的是一个窗口,其设置是在启动工程下的属性中设置的,如果要调出控制台,则可以更改"子系统"设置

比如,我们希望打开一个模型后,点击MyTest下的Find_Neighbors按钮后,程序在控制台输出一个hello world。

至此完成了从建立按钮到处理按钮对应事件的整个流程。

原文地址:https://www.cnblogs.com/scut-linmaojiang/p/4313657.html