前言 最近一个接到这样一个需求,需要在FreeCAD的中加入一个自定义的工程文件。这需要搞懂原本框架中的新建工程、打开工程到保存撤销回复再到保存另存的一整套流程,还需要搞懂工程与UI之间的对应关系。于是开始翻看FreeCAD得源代码,一边看一边惊呼,居然还这样操作。然是我才疏学浅,这源代码使我受益匪浅。 整个工程得流程,可以分为三个部分: Command。这部分主要往程序主框架中注册一些命令,如新建、打开、保存等这些基本操作,然后将这些命令放到界面上去供用户使用。 UI。这个主要指工程所对应的ui,比如在一个模型工…

2020年11月26日 0条评论 3847点热度 3人点赞 大脸猫 阅读全文

众所周知qt中,要将一歌窗口嵌入另一个窗口只需要调用setParent()函数就可以了。但是setparent()参数必须是qwidget对象的指针,很遗憾的是桌面并不是一个qwidget对象,所以并不能这么做。 在查阅了一些资料之后,发现实现类似的效果都是通过winapi实现的,所以我记录下来的也只是在windows平台上的实现方法。 在winapi中提供了一个SetParent()的函数,功能与qt的setParent函数如出一辙,它的原型是这样的。 HWND SetParent(HWND hWndChild,…

2020年11月8日 3条评论 7876点热度 45人点赞 大脸猫 阅读全文

wordpress框架中的get_categories($args)可以获取所有分类目录的信息。 $args参数定义如下 $args = array( 'type' => 'post', 'child_of' => 0, 'parent' => '', 'orderby' => 'name', 'order' => 'ASC', #排序方式 'hide_empty' => 1, #是否隐藏空的目录 默认隐藏(经测试传入布尔类型也可以) 'hierarchical' => 1…

2020年11月2日 0条评论 3830点热度 0人点赞 大脸猫 阅读全文

lua是一个比较简单的脚本语言,我们可以用C/C++对它进行扩展。当我们使用C++与lua进行交互的时候,因为两种语言的数据结构是有很大的不同的,所以这个时候我们是通过虚拟栈来进行信息的交换的。 可以把虚拟栈看做一种数据容器,它可以存放lua中的任何数据类型包括函数。 luac //将栈的索引转换为正索引 LUA_API int (lua_absindex) (lua_State *L, int idx); //获取栈顶的索引(即栈的大小) LUA_API int (lua_gettop) (lua_State *…

2020年11月2日 0条评论 3971点热度 0人点赞 大脸猫 阅读全文