- 博客(116)
- 收藏
- 关注
原创 CMake编译链接json-c库
这里include和lib目录是我自己创建的。cmake-gui没有install这个操作,cmake-gui生成项目后使用VSStudio打开并编译,也没有安装到我预设的目录,所以只好自己创建了。使用cmake-gui,vs2022编译完json-c库之后,得到了json-c.lib,json-c.dll等库文件。注意使用的时候需要把编译后的json.h文件加入到include目录。
2024-10-18 12:18:30 279
原创 解决VisualStudio msvsmon.exe远程调试器未启动问题
结果发现原来可能是使用了网络代理proxifier的缘故,当然了也有可能是某些软件给我屏蔽了tcp之类的端口。心想是不是msvsmon.exe是个后台服务,结果死活找不到这个服务,然后再VS的安装目录下,我用的是VS2015,在VisualStudio14目录下找到了这个msvsmon的程序,运行之后,莫名其妙。好了,防火墙我一直关着的,也许VS2015的msvsmon.exe的端口没有开放。原本好好的用本地调试器编译运行程序,结果VisualStudio不知道哪根筋抽风了,死活就是无法运行程序。
2024-09-26 09:28:55 333
原创 VisualStudio编译时出现无法启动mt.exe
VS中出现无法启动mt.exe的问题,基本可以确定就是项目属性那块出现了问题,我这里是把目标系统SDK设置成了10,即Win10SDK,这里我用的是VS2015,中间倒腾了一下VS2022,所以导致出现了问题。把10换成8,总之低一些的就好了,一般就是8.说到这里,大家在面试的时候,记得一句话,但凡对方问你某个IDE你有没有用过,你会不会,如果你确实不会,那么也必须得说自己用过,然后再来一句,这个就是设置一下头文件包含和库目录路径的问题。所以这就是一句套话,只要你用一下这个IDE,你就会明白的了。
2024-09-25 22:19:01 222
原创 VisualStudio如何卸载Resharper插件?
点到某个函数代码啥的,突然给你来一段函数的声明或者解释,然后还只能叉叉关闭,想要的功能一个没有,不想要的功能一箩筐。有用的又要付费,真心就远远不如QtCreator,可惜QtCreator配置VS环境比较麻烦且问题很多,不然还真想一个QtCreator搞定所有平台了。或者用腾讯管家之类的工具卸载也行,就当它是一个软件就好了。本来按理说,卸载插件应该就是在扩展下的已安装插件中,找到该插件,点一下就会出现卸载的按钮的。没想到这个Resharper这么吊,卸载按钮居然是个灰色的,意思就是此路不通,有特权的。
2024-09-25 01:14:31 221
原创 解决CodeBlocks中的界面wxSmith界面无法打开问题?
譬如我这里就有好几个wxSmith的界面,由于没有生成xrc文件,导致关闭项目后,再次打开wxs界面,无法正常导入了,显示为xml文件。在CodeBlocks中,wxSmith如果想要保存已经编辑好的UI界面,你需要勾选生成xrc文件才行。而生成xrc文件后的界面,保存之后,下次打开就可以正常双击打开界面了。
2024-09-20 08:36:01 383
原创 msys2下使用mingw64还是ucrt64好?
但是有一次看同事使用了ucrt64,就查了一下到底ucrt64是个什么鬼?这一查才知道,原来ucrt64才是windows下的正统编译环境,在这个编译环境下编译,能够保证编译程序在windows下是性能最好的。当我试图编译某个源码包的时候,./configure一下,make一下,问题出现,原来ucrt对于本地路径有认知障碍,编译过程中它不识别什么D盘C盘之类的路径,这真是稀奇了。于是乎,我就果断换成了ucrt64,心理上觉着好像是编译的时候快了的感觉。没办法,果断换回了mingw64,编译畅通无阻。
2024-09-20 08:25:20 560
原创 wxWidgets wxSmith自定义控件Custom的提升用法
所以大家千万不要孤立地看待某一个框架,同样道理,无论桌面系统GUI框架还是Web端前端框架,外在的表现形式都是大同小异的,只是实现的方式不相同,也就是语法规则不一样而已,同样的业务逻辑,使用不同的框架去实现,它必然也得是同样的业务展示,不应该一套一套地,否则我们现在也不会大力倡导跨平台程序。原因就在于,一套代码,一套逻辑,一套设计,就应该能够在不同的框架下实现,而不是各自搞一套,费时费力费钱。所以,学习wxWidgets也好,学习Kotlin,pyQt之类的框架也好,我们都可以类比学习。
2024-09-18 08:38:08 212
原创 CodeBlocks20.03配置wxWidgets3.2.5教程
CodeBlocks仅仅是为了让你入门wxWidgets,或者其他纯C++的项目,譬如OpenGL,OpenCV,sdl之类的,因为它有模板,方便。用CodeBlocks开发wxWidgets,最主要的有点就是你可以快速上手项目流程,而不是一开始就去抠那些控件,布局,样式,还有各种自定义控件,事件之类的细节,因为拖控件的好处就是让你直观地开始你的业务逻辑编程,而不是语法编程。最主要的配置就库的搜索路径,和头文件的包含路径,以及运行时的dll文件路径的配置,下面图示都配置一遍即可。
2024-09-12 08:44:28 533
原创 解决LNK2001:无法解析外部符号_sprintf
升级后,工程打开编译,出现了链接错误,找不到_sprintf函数字符,这个是stdio标准库里面的函数,一般只要安装了VS,就肯定会有的。最终使用工程原本创建的VS版本2010,打开什么问题都没有。可见VS的版本高,对低版本并不是完全兼容的。最近用VS2015,VS2022打开某个工程,提示要升级proj文件,于是只能升级。
2024-09-04 12:21:49 179
原创 最管用的能屏蔽WIndows10/11系统功能按键的工具--powerToys键盘管理器
第一种方式:注册表肯定是98%的按键都能够屏蔽的。好了,第三种,就是我主要想说的,powerToys,里面的键盘管理器。最近在开发中碰到需要屏蔽系统按键功能的需求,原本以为是程序里屏蔽按键,结果,原来是需要屏蔽操作系统默认按键功能。使用键盘管理器,设置按键映射,将你想哟屏蔽的按键映射为别的没用的按键,就可以达到屏蔽该系统功能的程度了。这样的话,就只能往注册表,脚本,全局钩子函数,以及一些第三方的什么工具之类的方面想想了了。这里要提一下的是:我们写的回调函数是可以放在类里面的,只需要将它作为静态函数即可。
2024-08-31 17:13:52 423
原创 VMware安装Win10系统后,启动系统提示不支持的处理器,怎么解决
最近想在VMware16上装个Win10,专业版,结果网上找了个Win10专业版19系列版本的,使用大白菜装机工具安装,先分区,GUID的试了好几次,都没能成功,换MBR分区的也不行,反复试了好几次,在大白菜的pe系统下明明安装完成,结果从硬盘启动,硬是不行,还提示我CPU不支持。特此记录一下,供后人参考吧。另外记得VMware设置硬件的时候,不要选择Nvme硬盘,我试了好几次,这个似乎比较新,VMware压根不识别。又从网上下了一个Win10 21H12之类的版本,再次适应MBR启动扇区,立马就成功了。
2024-08-30 00:15:42 294
原创 开源跨平台支持400多个国家语言屏幕键盘虚拟键盘Keyman开发指南
很多公司都是只开发英汉两种键盘布局,连Qt自带的VirtualKeyboard实际上要支持多国语言,也需要自己修改很多东西。这里终于找到一个非常好用的开源国际键盘Keyman。很多嵌入式开发平台或者移动端,桌面端开发都需要用到自定义的键盘,想要开发一个能够支持多国语言键盘布局的开源Keyboard可不容易,工作量非常大。大家可以自行去下载。
2024-08-28 09:34:45 528
原创 C++开发IDE用VisualStudio好还是QtCreator好?
但是但你需要windows SDK的支持的时候,具体来说,就是操作窗口,操作注册表,操作Windows进程,系统输入法,directX之类的api时,就需要考虑还是用回VisualStudio吧。当然了,VisualStudio和QtCreator本身就不是一个量级,VS越做越大,庞大的插件库也使得他能够支持从嵌入式到手机端,从web到脚本,甚至游戏,仿真等等各个领域的开发任务。还有类视图,项目布局,代码导航跳转,格式重排,等等各项功能,在QtCreator中用的都很舒服,但是VS中却用的很不爽。
2024-08-27 09:32:25 423
原创 解决WIndows10下更新蓝牙驱动屡屡失败问题
想起换下来的硬盘系统里面还有系统在,试试看能不能直接用之前的系统蓝牙驱动,原则上是应该没问题的。所以就将之前的硬盘装到硬盘盒里面,给新系统当U盘用。然后选择-我的电脑-管理,进入设备管理界面,看到蓝牙设备未识别,所以显示为未知设备,一个问号。你没看错,不是system32,而是WIndows目录,直接让它自己搜索。因为system32不管用,说明蓝牙驱动并不在system32的driver里面。因为换了个1T自带Win10系统的SSD硬盘,导致蓝牙驱动死活装不上了。不到五分钟,蓝牙驱动自己安装上了。
2024-08-26 00:26:00 451
原创 C++ wxWidgets图形界面开发用什么IDE最好?
不过值得庆幸的是,唯独是它,具备支持wxWidgets界面开发的设计器,正如QtCreator支持Qt界面设计器,vsualstudio支持wpf的界面设计器一样,他们似乎就是配套使用的。所以如果你对wxWidgets比较熟悉,而且不大喜欢拖拽界面控件去开发项目,那么使用QtCreator去开发wxWidgets是很合适的。wxWidgets是目前C++项目界面开发中仅次于Qt的唯二最具备完整项目构件需求的开发框架,虽然它没有Qt好用,但胜在完全免费,Qt商业应用是要买授权的。
2024-08-19 23:48:06 772
原创 Qt3D摄像机QCamera常用代码使用说明
这里将相机的上向量设置为 `(0, 1, 0)`,即Y轴正方向,表示相机的正上方是沿着Y轴正方向。这行代码设置相机在三维空间中的位置。这里将相机位置设置为 `(0, 0, 20.0f)`,即相机位于坐标原点向正Z方向移动了20个单位的位置。这行代码通过 `view` 对象获取到当前场景中的相机实体对象 `cameraEntity`,后续的操作将会对这个相机进行设置。- `16.0f/9.0f`:视野的宽高比(aspect ratio),这里设置为16:9,通常用来匹配屏幕或显示区域的宽高比。
2024-08-04 21:47:00 571
原创 Qt6 3D编程Windows下OpenGL不再是默认
譬如:QGuiApplication::setAttribute(Qt::AA_UseDesktopOpenGL, true);Qt63D为了适应时代发展,适配了Direct3D 11,Vulkan和Metal,而以往的OpenGL则挪到了OpenGl 模块。不过OpenGL的功能还在,如果你是在Ubuntu下编程,没有启用Vulkan的情况下,默认还是OpenGL的。所以如果我们想要强制设置OpenGL作为3D图形后端的话,是无效的了。还有QT_OPENGL=angle这种配置也无效了。
2024-08-04 00:40:54 134
原创 Qt3D中实体QEntity,QComponent,QTransform使用说明
Qt3DCore::QEntity是一个Qt3DCore::QNode子类,可以聚合指定其行为的多个Qt3DCore::QComponent实例。例如,要拥有由Qt3D渲染器方面绘制的实体,实体很可能会聚合Qt3DCore::QTransform,Qt3DRender::QMesh和Qt3DRender::QMaterial组件。Qt3DCore::QComponent提供了一个垂直的行为切片,可以分配给Qt3DCore::QEntity实例,有时也可以在Qt3DCore::QEntity实例之间共享。
2024-07-31 00:36:56 467
原创 解决Qt3D程序场景中无法显示创建的立体图形?
这里我们有两种方式可以显示你创建的立体图形,第一种是使用鼠标滚轮缩放场景,直到可以看到图形。第二种就是设置摄像机的位置,如上代码。有的新手在创建Qt3D程序时,因为不熟练,导致经常遇到无法显示3D图形的情况。原因其实也简单,就是设置的摄像机的位置不对,或者压根没有设置摄像机。
2024-07-31 00:25:37 164
原创 Qt6 qml文件导入系统组件时不再需要版本号
想要看是否有这个组件,譬如Controls.Styles这个组件,我们可以直接使用帮助文档查看,也可以去到安装目录下的qml/QtQuick/Controls目录下查看是否有这个组件。qt开发中,以往在Qt5中,我们导入quick组件的时候总是要写版本号,挺麻烦的,而现在Qt6中qml导入组件无需再使用版本号了。qml中的组件就跟Java中的包一样,实际上import这个语法就可以看出来。
2024-07-30 16:09:16 141
原创 解决qt qml中引用其他qml文件组件时提示找不到该qml文件
想导入一个LoginScreen.qml的组件,结果总是提示我找不到。改为resolve地址就可以了。
2024-07-30 15:50:18 190
原创 Qt中QTcpServer处理客户端连接及通信步骤
qt中的QTcpServer是Qt中用于创建TCP服务器的类,它允许你在应用程序中实现TCP/IP服务器端。当有客户端连接到服务器时,QTcpServer会发出`newConnection()`信号。- `nextPendingConnection()`函数返回一个连接到服务器的新客户端的QTcpSocket对象。在`newClientConnection`槽函数中编写代码来处理新客户端的连接。在服务器启动时,调用`listen()`函数来监听一个特定的端口。`1234`是你选择的服务器端口号。
2024-07-29 23:03:05 173
原创 解决Qt6 error: The kit needs to define a CMake tool to parse this project.
具体原因可能和cmake的版本,以及是否设置为默认有关。另外也和QtCreator中自带的cmake工具有关系。所以,如果你出现了这个问题,就试试这几个路子吧。在编辑菜单里面将错误的那个删掉,设置另一个为默认即可。上述错误,就是我在Windows10下运行cmake项目总是报错的一个问题。cmake对于Qt6来说很重要,所以学会cmake是必须的。明明路径已经配好了,却总是报错。
2024-07-29 15:10:38 576
原创 Qt3D创建3D物体步骤
5.给立体图形添加材质,添加坐标位置,添加纹理,添加其他效果。6.创建摄像头,设置摄像头的属性,父指针为根实体。4.创建立体图形,即物体网格,设置物体的属性。3.创建物体实体,父指针为根实体。7.设置窗口根实体,显示窗口。1.创建一个3D窗口。
2024-07-24 08:32:05 487
原创 提示Qt3D.Renderer.RHI.Backend: Initializing RHI with DirectX backendQRhi 0x21a5e63c990 going?
这部分是一个警告信息,指出在某个QRhi实例销毁的过程中,有一个资源未被释放。这个资源拥有底层图形对象(native graphics objects),但它们没有被正确释放,这可能会导致资源泄漏或内存管理问题。- 这部分表示Qt 3D正在初始化其渲染硬件接口(RHI),并且指定了使用DirectX作为后端。RHI是Qt 3D用来与底层图形硬件通信的抽象层。这段话来自Qt 3D的日志输出,涉及到渲染硬件接口(Rendering Hardware Interface,RHI)的初始化和资源释放问题。
2024-07-23 00:06:15 178
原创 C++中传递指针和传递引用应用场合的区别
传递空值:需要传递空值或者表示没有对象的情况时,使用指针更为合适,因为指针可以为空(null)。- 对象可选性:如果函数需要接受可选的对象或者需要在函数内部改变指向的对象,使用指针是更合适的选择。- 性能优化:引用通常比指针更为高效,因为不涉及指针的间接性,避免了指针操作带来的开销。- 改变原始对象:无论是指针还是引用,都能够实现对原始对象的直接修改,而不是修改其副本。- 避免拷贝开销:无论是指针还是引用,都可以用于避免因为传递大型对象而带来的拷贝开销。
2024-07-18 08:34:11 83
原创 解决Qt6 OpenCV项目编译出现错误undefined reference to symbol ‘cv::cvtColor,无法解析的符号
在一次Qt6 OpenCV项目编译的过程中,出现错误undefined reference to symbol 'cv::cvtColor,无法解析的符号,问题是查看INCLUDEPATH和LIBS,都已经添加正确。在项目的生成目录下,这里我指定的DESTDIR为项目目录下的bin目录。将OpenCV bin目录下的dll文件都给搬过来,然后再运行Ctrl+R,这个错误消失。而且这个函数也可以在头文件中索引到。接着就可以继续构建运行了。
2024-07-17 08:24:39 130
原创 Qt6 OpenCV4视频监控系统项目源码解析——附源码及编译运行步骤
很多刚毕业,或者想着转行到C++ Qt方向的小伙伴,平时可能拿不出比较像样的项目。自己拿回去好好改改,就可以成为自己的项目经历了。这里我用的是Qt6的MSVC2022最新版编译。这个项目架构采用的是MVC架构,结合OpenCV,使用QDockWidget + QMainWIndow的控件来展示摄像头监控的画面。这里使用的是qmake,OpenCV的库,大家可以自行使用vcpkg安装。这里我采用的是Qt6去编译的。记得运行程序的时候,需要加上某些vcpkg的库,大家可以在这个项目的基础上拓展其他模块应用。
2024-07-17 02:35:59 120
原创 Qt6 3D开发如何给平面体添加草地纹理图片
在Qt6中,纹理图片是以纹理材质的形式被添加到立体图形(mesh)上的。通过给实体添加组件的方式,将纹理材质使用在实体上。
2024-07-12 08:31:28 62
原创 免费的AI文生视频哪些比较靠谱?
目前比较好用的图生视频AI,可以看看PixVerse,起码它是可以生成动作的,只不过图片和描述越复杂,生成的效果就越是不行,所以尽量以简单动作,简单效果来使用。至于有的平台,文、图生视频就是把图片给设置了一下渐大渐小,就有些滑稽了。这效果,恐怕还差的比较多。国内的文生视频大部分都直接需要付费,不付费的比较少,一些移动客户端譬如快手的可灵,仅仅局限于某些模板。其他的像lumaAi,sora之类的,都已经开始付费,或者干脆就连网站都打不开了。从无到有,从有到精,毕竟需要一个时间阶段的。
2024-07-11 08:29:04 588
原创 Qt6 qcustomplot在图表上画一条直线
另外一点就是qcustomplot中的replot就相当于Qt中的update,由于qcustomplot是属于绘图类的接口库,所以,基本是只要对图表有操作,就需要使用replot更新。主要注意的是Qt中的QHBoxLayout等Qt类对象在被引用的情况下是可以使用局部变量的,典型的如setLayout这类型的函数接口,都可以使用局部变量,而不是new对象。
2024-07-03 01:14:22 285
原创 Qt6.6编译Qt二维图形编辑器QVGE源码
QVGE可以轻松创建和参数设定的小型到中型图形(1000+节点/边缘),共同的视觉特性的节点和边缘:形状、尺寸、颜色、标签等。在这份源码中经常会看到QSet的unite,intersect的使用,将两个集合合并的操作。这在QList中是没有的。QVGE是一个开源的多平台QtC++编写的图形编辑器,可以用来画网络节点图,或者其他作用。主要问题就在于各种在Qt5下可以用的类或者函数,在Qt6下都无法使用,只能做替代处理。输出的图形成PDF,SVG和各种图像的格式(BMP,PNG,JPG,TIFF等)。
2024-06-28 08:30:49 222
原创 Qt6中如何将QList转为QSet?
QSet是一个具有唯一值的哈希集合。比较有用的是QSet里面的intersect查找两个集合中不同元素,并合并。转换过程比较简单,第一种是直接用迭代器。
2024-06-26 00:50:28 164
原创 Qt6 windows10下悬浮按钮栏实现
程序的角度来看,它就是实现了一个悬浮按钮栏的功能。当然了,你也可以做成悬浮列表,悬浮下拉框,悬浮xxx等控件。打王者荣耀的时候,你是否有看到中间的按钮是悬浮在屏幕的左右侧,以及中下位置,背景则是一个播放着视频的画面。这里,我们实现在Windows的版本。手机版大家自己查阅资料,或者以后我有空才做一个。
2024-06-25 00:45:56 149
原创 外包公司泛滥,这些常识你应该提前知道?
最后,顺带说一下,很多公司(大小公司)都拿年底多少薪诱惑你,看着大大的标题,或许你会动心,但其实吧,这个钱,得看公司当年的利润,利润多,你才能有得分,利润少,自然就少。不过既然人家写出来了,肯定是要计算绩效的(一般最直接的绩效就是加班工时,为什么会这样?以后再说),绩效高了,年底钱就多,最少也是有点儿钱的。但是外包公司,这个钱基本就是没有的。大部分外包公司,加班都是既没有调休(你找不到时间调,或者远远调不够你加班的时间的),又没有钱。
2024-06-16 09:00:54 955
原创 敏捷=996/007?现实是……
敏捷开发对个人的要求还是比较高的,不要以为拿到offer,进入职场,就能当个普通的牛马了,敏捷可不是普通牛马,敏捷要求你积极主动能抗压,为了工作要拼搏,拼搏自然就少不了要主动反馈问题,牺牲自己的休息时间。最近几年,大部分公司都在招聘信息里宣扬拥抱敏捷开发,敏捷管理,让人一看就觉得高大上,殊不知,不知道坑了多少纯真烂漫的应届生。他们满怀期待地步入职场,以为凭借着自己985,211的金字招牌,在职场上混的风生水起,顶着敏捷的高大上,兴奋不已!可事实却是,残酷的职场打工潜规则,让他们看清了社会残酷的现实。
2024-06-15 09:11:17 377
原创 解决Windows下共享文件夹的再三访问失败问题
乍一看,没辙了,正当我要放弃之际,我试了试初始管理员的账号,也就是系统默认的管理员Administrator,随后,回车,密码依旧是那个密码,但却连通了!明明输入的账户就是当前远程电脑系统的用户名,而且该系统用户还的的确确就是管理员,明明高级网络共享中的文件共享,密码保护都已经开启了,明明输入连接地址后也弹出了远程账户和密码登录的窗口,明明更改了密码后就应该能连通的,可偏偏就是不行!明明共享文件夹的Everyone权限设置妥当,明明局域网的两台电脑可以ping通,明明防火墙也关闭了,
2024-05-10 00:12:54 568
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人