- 博客(23)
- 资源 (8)
- 收藏
- 关注
原创 QScopeGuard--在作用域结束时资源释放逻辑
初识项目组有个go过来的大佬,再各种释放资源的时候特别不爽,c++咋就没有defer。打开关闭文件的时候,这种操作很常见。多个判断多次关闭的操作很多,也会很容易出现错误bool a(){ QFile f(m_path + "/data/test.html"); if (!f.open(QIODevice::ReadOnly|QIODevice::Text)) return false if (m_isFalse) { f.close(); return false;} f.clos
2022-03-02 11:04:13
686
原创 QtConcurrent::map的错误记录
起因我有一个线程,在这个线程中处理一个list数据。这些操作也想放在不同的线程中处理,然后就选用了QtConcurrent::mapclass mydata;class computeData{ void s(mydata){ .... } void compute() { QList<mydata*> values;; QFuture<void> f = QtConcurrent::map(values, &computeDat
2021-11-19 16:36:55
607
1
原创 偷懒大法之--类模板
麻烦在工作中一些重复的代码总在发生,后面写的时候感觉好烦躁。譬如class a {pubilc:void insertS1(s1* data);int s1DataByIndex(s1* data);......void insertS2(s2* data);int s2DataByIndex(s2* data);......void insertS3(s3* data);int s3DataByIndex(s3* data);.....private:QList<
2021-03-02 11:04:03
139
原创 工作中遇到的问题(1)- QProcess无法打开空格路径可执行文件
QProcess无法打开空格路径可执行文件最近软件发布,老大说你这个exe怎么一致调用不起来。可是我在我的版本下面跑一直没有问题呀。然后跟出来的路径如此exePath = "d:\a b c\abc.exe"process->start(exePath ); //错误了因为无法打开带有空格的路径//修改后exePath = "\"d:\a b c\abc.exe\""process->start(exePath ); //正确 总结 :工作中小问题挺多的,注意各种情况的测试
2021-01-25 14:20:39
801
原创 开发笔记---自动注册工厂释放switch case
项目优化最近笔者在回顾自己项目代码的时候,发现写了一堆的switch ,case,不同的数据创建不同的数据类。发现代码,case1,case2等都是继承case基类。这也是简单的工厂模式。如果Type的类型较少,还凑合这用,过多的话,惨不忍睹,例如笔者的代码中就有20多行,不美观,也不实用,再增加新的类型的时候,还有重新在此添加,太麻烦。switch(type) {case 1:return case1;case 2:return case2;......}工厂模式属于创建型设计模式
2020-11-27 10:33:31
233
转载 Qt 程序发布与运行(官方 windeployqt)
对了vc的运行库得自己打包进去,转发大佬http://blog.youkuaiyun.com/csnd_ayo
2020-10-28 15:13:53
255
原创 Qt界面ASSERT:window == topLevelWindow断言错误
先来看下bug的提示ASSERT: “window == topLevelWindow || topLevelWindow->isAncestorOf(window, QWindow::ExcludeTransients)” in file painting\qbackingstore.cpp, line 252接下来分析哪里出错了发现是qt的内核的断言,一筹莫展。最后在外网查到这个bug的产生条件,是因为使用了双屏。解决办法不使用双屏把qtcreator和你的界面程序在同一个屏内
2020-10-15 17:45:22
983
原创 qt-线程API-QtConcurrent
使用此类需要在pro文件增加QT += concurrentQFuture 异步计算的结果返回 QFutureWatcher<vtkUnstructuredGrid*>* watcher = new QFutureWatcher<vtkUnstructuredGrid*>();//监听 connect(watcher, &QFutureWatche...
2020-04-14 22:17:05
263
原创 netgen对于网格的局部处理和细化
局部处理这里的局部处理指点,线,面的大小nglib.h提供的接口Ng_OCC_SetLocalMeshSizemeshclass.hpp提供的接口RestrictLocalH//使用occ需要在pro中增加DEFINES +=OCCGEOMETRY \MSVC_EXPRESS\#include <occgeom.hpp>//nType为id的类型bool Wid...
2020-02-27 11:24:01
2208
8
原创 netgen对于网格的控制
Netgen自带的网格控制所有的网格控制参数存储在Ng_Meshing_Parameters中//重新计算一边网格void Widget::geranmesh(){ if(pOccgeo){ int np, ne; // Set the Meshing Parameters to be used nglib::Ng_Result ng_res;...
2020-02-27 11:09:56
1780
1
原创 基于netgen的API对于OCC文件的加载和网格划分
OCC文件的加载过程netgen提供的API接口:提供了三类接口对于occ的几何文件,iges,step,brep文件的读取//包含的netgen的头文件namespace nglib{#include <nglib.h>}; QFileInfo fileInfo(fileName); QString fileSuf = fileInfo.suffix(); ...
2020-02-27 10:49:38
2418
10
原创 vs编译netgen
Netgen编译1.需求netgen下载-github下载地址或者 git clone https://github.com/NGSolve/netgen.gitocc编译下载(已经编译) --去我的资源里下载zlib–tcl–tk–2.配置netgen的Cmake2.1配置occ路径和occ库的路径use_occ–勾选2.2设置zlib路径2.3设置TCL,TK路径...
2020-02-27 10:32:35
1768
10
原创 获取vtk文件中的颜色映射,并切换显示
1.vtk文件读取 vtkSmartPointer<vtkDataSetReader> vtkReader = vtkSmartPointer<vtkDataSetReader>::New(); vtkReader->ReadAllScalarsOn();//获取所有的标量数据 vtkReader->ReadAllVectorsOn(); ...
2020-01-03 10:51:08
1970
2
原创 vtk颜色映射之颜色插值
vtk颜色映射之颜色插值两张效果图:,第一张是没有设置插值。第二张是设置了。在这里插入图片描述处理方式:1.设置颜色的分块vtkSmartPointer hueLut = vtkLookupTable::SafeDownCast( datamap->GetLookupTable());hueLut->SetNumberOfTableValues(9);2.设置ma...
2020-01-03 10:35:39
1321
原创 vtk框选实现-vtkInteractorStyleRubberBand3D
1。先看效果图吧2。实现的方式1)利用vtk是观察者模式,事件回调函数实现后续的框选操作定义回调函数void fCallback(vtkObject *obj, unsigned long eid, void *clientdata, void *calldata)//定义自己的callback函数caller事件的发出者,用来获取vtkRenderWindowInteractor等...
2019-10-18 13:53:02
2957
3
原创 vTK颜色渲染-vtkLookupTable
vTK颜色渲染-vtkLookupTable1. 建立 vtkLookupTable过度颜色VTK_CREATE(vtkLookupTable, lut);lut->SetHueRange(0.6667, 0.0);//设置颜色值lut->SetNumberOfColors(10);//设置颜色的区块lut->Build();2.加载数据vtkPolyData,vtk...
2019-10-16 09:34:40
10824
3
转载 LPCWSTR 和 LPCSTR群里大佬
1. 你清楚LPCWSTR 和 LPCSTR是什么类型吗?答:LPCWSTR是wchar_t,是一个unicode字符,有两个char那么长,LPCSTR是char2. 你知道这里网上为什么强转吗?答:QString里面存储的是unicode字符串,utf16()函数返回的就是unicode字符串的地址本身,但是类型是 unsigned short*,所以要强转到unicode的wcha...
2019-06-24 16:34:11
728
原创 每天学一点之-qRegisterMetaType和Q_DECLARE_METATYPE
Q_DECLARE_METATYPE:QVariant作为一个QT的广泛的数据类型,可以转换为各种类型,qt和c++的基础类型可以直接存储,自定义的结构体也可以存储。不过,存储自定义类型的结构的时候需要转为QMetaType而过程就是需要用Q_DECLARE_METATYPE宏转换。qRegisterMetaType--这个也是转为QMetaType,适用的场景就是槽函数的传值...
2019-06-18 09:23:35
835
原创 配置vs和qt的开发
1.qt和vs的安装就不做介绍了2.下面的链接为Debugging Tools for Windows (x64)为qt需要设置的调试工具和sdkhttps://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/index下载安装,记得选取Debugging Tools3.配置qt的构建工具,安装完成后会自动加载的...
2019-03-25 16:18:12
224
Netgen简介.pptx
2020-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅