QThread 是Qt提供的一个线程类,要使用它实现多线程编程有两种方法,一种是新建一个QThread对象,然后使用QObject::moveToThread(QThread*),将一个QObject对象的事件循环转移到新的线程中。另一种是继承QThread类然后重新实现run()方法,run()将在调用QThread::start()的时候在新的线程中被调用。 这个函数可以将对象以及子对象的线程关联移动到targerThread中,但是这个对象不能有父对象,否则会失败。 如果targetThread 为nullp…

2022年4月1日 0条评论 2570点热度 1人点赞 大脸猫 阅读全文

QT多线程之QtConcurrent::run() QT有几种可以实现多线程编程的方式,其中最方便使用,最便携的一定是QtConcurrent::run()了,这是一个模板函数,有很多的重载原型。 //在新的线程中调用普通函数 template <typename T> QFuture<T> QtConcurrent::run(Function function, ...) //使用线程池中的线程调用普通函数 template <typename T> QFuture<T&…

2022年4月1日 0条评论 6722点热度 15人点赞 大脸猫 阅读全文

QLocalSocket 是Qt提供的一个进程与进程之间的通信的方法,在Windows系统上使用管道技术实现。 翻阅了一下微软的MSDN得知管道技术是通过共享内存实现的,创建管道的进程称为pipe server,连接的被称为pipe client,当一个进程往管道中写入信息后,另一个进程就可以在这个管道中读取信息。 扯远了,文章主要记录QLocalServer和QLocalSocket如何使用,然后在实现进程通信的基础上,实现一个程序保证在系统里只有一个实例在运行。 使用QLocalServer 时,先调用list…

2022年3月26日 0条评论 6983点热度 4人点赞 大脸猫 阅读全文

便利贴页面: 历史记录页面:   老实说Windows自带的便笺还挺好用的,但是已经很久不更新了,都2022了都还不能置顶到屏幕上,很难受。而且部分富文本功能也很不友好,所以决定自己撸一个。 之前一直用的windows自带的便笺,UI和一些交互非常喜欢,所以就照抄了,本着把喜欢的都拿过来,然后再加一些它没有的东西。 新建便利贴 程序运行后会最小化到托盘,右键托盘可以新建 如果已经有存在的便利贴,可以在便利贴的工具栏上点击新建也可以 工具栏中还有一个复制按钮,功能是在新建的同时会复制当前便利贴的样式(包括颜…

2022年3月24日 78条评论 26169点热度 48人点赞 大脸猫 阅读全文

之前使用一篇博文记录了如何利用vtk的轮廓提取技术生成一个函数模型,里面提到使用vtk生成的模型数据,需要转换为OCC数据类型用于CAD建模使用。 查询了许多资料,IVTK是可以做到将OCC的数据直接转换为VTK的数据,但是似乎没有反向转换的途径,最后只能自己动手,丰衣足食。 整个数据转换流程大概是这样。 vtkDataSet 提供了GetPoint()和GetCell()两个函数获取点与单元,只要传入单元的ID即可。 这里需要用到BRep_Builder,这个类用于构建一些OCC的拓扑数据结构。 void Mak…

2022年3月22日 0条评论 3032点热度 1人点赞 大脸猫 阅读全文

FreeCAD文件框架有两个程序入口,一个是通过命令行的方式打开时使用,一个在程序正常运行时使用。 这个流程图列举了三种以命令参数的形式打开文档的方式: 以控制台模式启动 这个模式直接调用App::Application::runApplication(),在这个函数中获取命令行中的参数,通过参数提供的路径打开文档。 以GUI方式启动,单实例模式 这个模式会调用Gui::Application::runApplication(),在这个函数中判断是否是单实例模式。在这个模式里如果程序已经被启动了一次,那么会通过lo…

2022年3月16日 0条评论 3508点热度 2人点赞 大脸猫 阅读全文

这篇博文记录一个解决函数体建模的初步思路。 项目开发需要使用函数描述一个三维模型,然后显示出模型的样子,大概原理是: 现有函数 F(x,y,z)= C  ,然后给函数参数限定限定一个范围 如 { |x| < 2,|y| < 2 ,|z| < 2},对函数F求解,C < 0 的区域构成模型。 目前有两种显示方案,一种是本文记录的方案,继承vtkImplicitFuction 实现一个隐函数类,然后求得该隐函数在函数区域内,C=0的等值面。这样相当于获取了模型的表面,然后使用OCC的面缝补算法,…

2022年3月8日 2条评论 2904点热度 2人点赞 大脸猫 阅读全文

在工程中设置加入  H5_BUILT_AS_DYNAMIC_LIB 宏

2022年3月4日 4条评论 2818点热度 0人点赞 大脸猫 阅读全文

Unity 2D碰撞检测 前言 游戏的制作过程中常常需要检测两个物体是否接触,unity为了方便开发者实现这样的功能提供了collider 和 rigbody 这两个组件。 collider它会为Game Obejct提供一个碰撞包围盒,然后每间隔0.02秒会计算一次包围盒是否和其他的包围盒重合,由此来检测物体的碰撞。 rigibody也称之为刚体,它会为Game Object 提供一系列的物理效果,如重力、摩擦力、弹力、受力反馈等,这里不多叙述unity物理引擎的使用,只记录rigibody在碰撞检测中发挥的作用…

2022年3月4日 0条评论 8701点热度 14人点赞 大脸猫 阅读全文

Unity制作的游戏由场景组成,场景中所有的物体都被成为Game Object,而精灵(Sprite)也是其中的一种。它在场景中有着十分广泛的用途,常常被用于实现游戏中控制的主角、ncp、怪物等。这里用于记录如何创建一个精灵并简单的使用它。 在创建一个精灵之前得先拥有一个Unity 2D的工程。 创建一个精灵最简单的方式就是在工程页面,右键工程名->GameObject->2D Object->Sprites->Square 依次选择,然后在给它取一个心爱的名称,这就是创建一个精灵的完整过程…

2022年3月4日 0条评论 7813点热度 3人点赞 大脸猫 阅读全文
145678