- 博客(81)
- 资源 (17)
- 收藏
- 关注
原创 C++幕后故事(七)--一个对象的生与死
C++幕后故事(七)–一个对象的生与死这节里面我们会学习到以下四点:1.对象的生成时机2.对象构造过程和POD类型3.对象的复制语意4.析构语意1.对象生成的时机根据对象的控制力度不同,对象的生成时机也是不一样的。我们可以把它分为两类:1.new操作符用户手动控制时机,随时new,随时生成。2.编译器控制下也是有细微的差别,请看下面的表格。全局对象/...
2019-10-28 13:45:59 637 1
原创 C++幕后故事(九)--我们来new个对象
读者如果觉得我文章还不错的,希望可以多多支持下我,文章可以转发,但是必须保留原出处和原作者署名。更多内容请关注我的微信公众号:cpp手艺人。这个章节我们主要学习以下几个知识点:1.数据成员绑定时机。2.多种模型下数据成员布局。3.数据成员如何读取的。4.进程内存布局1.数据成员绑定时机大家一看标题可能有点懵了,什么叫数据成员的绑定时机。请随我看段代码,这段代码节选自《深入探索C++...
2019-10-14 10:52:21 996 1
原创 git status和git push扩展脚本
我在使用过程中发现,我的仓库可能有多个远程服务器,每次git push gitee && git push github && git push home,很是费劲。就是先遍历所有已经修改过的文件,向bash 中写入环境变量。的时候,再引用写入的环境变量,比如:$dolphin_cpp,这样就可以了。在使用这个命令之前,你要确定你的本地分支已经和远程分支关联了。其实是我对shell脚本起了别名,我把放在.bashrc中,查看工作区的变化,我想看某个文件的变化必须使用。在之前的时候,我是用。
2023-05-09 19:33:28 647 1
原创 一个开源的小项目Platypus
platypus 是一个对git bash窗口的管理,效果就是类似chrome浏览器那样,对bash窗口进行管理,可以随意的切换和创建。
2023-03-27 16:34:06 971
原创 QWebEngine图片渲染性能优化
我们有一个这样的场景,就是利用QWebEngine把网页渲染成图片,再传给服务器。我们当初采用QWebKit来渲染的,因为考虑网页可以更灵活,而且实现起来简单。当时当我们升级Qt版本从5.5升级到5.15之后就发现,在性能差的虚拟机里面渲染2张图片,几百KB的图片就已经很吃力了。往往渲染的图片不正常,有部分黑影。最主要的就是图片渲染得不全,一边有图片一边是黑色背景。
2022-09-19 13:05:17 654
原创 shellexecute启动程序出错
ShellExecute执行,程序报错。required application data could not be found.
2022-07-20 15:20:21 1337
原创 Python读取exe中导入的dll名称
在项目中经常添加一些Qt模块,但是如果每次打包人工的去搜索复制,也是一件挺烦人的事情。所以写个脚本去做这件事情,顺理成章的事情。顺便学下python语法。
2022-06-29 15:12:48 768
原创 美化QTabWidget(3)
增加无边框窗口功能(缩放,移动)增加tab贴图功能双击关闭tab可以设置是否需要绘制“+”按钮。支持tab拖拽,合并将绘制接口导出来,方便用户自定义绘制和贴图
2022-06-23 13:54:49 984
原创 Qt中诡异现象UI被切割的问题
项目升级到Qt 5.15.2之后就发现这个诡异的现象,但是Qt 5.5就没有这个现象。很是麻烦,一点头绪都没有。我们先来看下现象。再看看异常的UI:这两张图片可以看出明显的不一样。第二张图片里面的控件像是被拉伸,切割了一样。其实在真实的项目场景中,UI就像被是切割了一样。先说原因,其实这个是因为系统的DPI发生了变化,导致界面进行了缩放。比如:我先把系统的DPI设置150%,然后软件也会跟着放大1.5倍。我再把系统的DPI还原为100%,此时软件应该恢复到原来的大小,但实际上并没有,而是大小被切割了一
2022-06-14 12:52:58 684
原创 排查自模拟QWheelEvent事件不能向上传递排查
排查自模拟QWheelEvent消息不能向上传递1、事情起因因为我们的项目需要做一次大升级。从Qt 5.5升级到Qt 5.15.2.0,这个大版本的升级真是把我折腾的够呛。在我们的项目中,自己模拟了一个鼠标滚轮消息的。利用QApplication::postEvent()函数,向消息队列中发送一个QWheelEvent消息。这样就可以控件就可以自动滚动了。但是项目升级到Qt 5.15.2.0之后发现不行了。擦了擦额头的汗,这个bug怎么修啊?无从下手的感觉。去请教别人?万一,别人觉得我很low怎
2022-05-19 09:16:52 316
原创 Qt vs2013升级到vs2019
upgrade vs 2019 注意事项 自定义的Vector和系统的定义冲突winnt.h(RtlValidateCorrelationVector( In PCORRELATION_VECTOR Vector))如果要定义类型,请定义标识性特别强和项目名称相关。 这个问题在于报出的error,很难去排查。头文件引入不规范 比如里面用到了QPainterPath class,但是在实现时未引用头文件,在vs2013上可以编译通过,高版本编译未能通过。一些stl函数废
2022-05-17 22:58:37 782
原创 美化QTabWidget (2)
美化QTabWidget(2)1.效果展示 2.用法展示 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); setupUI(); QWidget *widget = new QWidget(); widget->setStyleSheet("background-colo
2022-05-08 23:16:13 1201
原创 美化QTabWidget
美化QTabWidget1.效果展示 2.用法展示 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); setupUI(); ui->tabWidget->addTab2(new QWidget(), tr("this is first tab"));}MainWindo
2022-04-18 19:17:47 1679
原创 3步格式化代码为 chromium 风格
1.clang 插件安装我使用的环境是VS2019,所以安装插件就很简单了。然后点击安装就可以了。再次打开VS2019,就可以看到这里的快捷键了2.VS 配置到这里我们就可以使用chromium风格了。使用方法:每次写完代码,按下组合键Ctrl+R Ctrl+D 就会自动帮你格式化代码了。3.cpplint安装Google也提供了一个工具,可以帮助我们检查代码风格,是否满足要求。前提条件:需要安装Python环境pip install cpplint安装完成之后,输入你要检
2022-01-26 14:20:19 1096
原创 libCef退出流程整理
libCef 退出流程整理 1.Check failed: !IsCefShutdown(). Object reference incorrectly错误原因 在实际的开发中,我们在推出cef时候可能会遇到如上的提示错误信息。我们先来从这个错误信息能得出那些重要的信息:首先它只有在debug模式下才会出现的错误,因为release版关闭检测。其次,我们可以简单的了解到对象被不正确的引用。再翻译下就是在退出的时候,资源没有正确的释放。就是退出的时候资源没有清理,造成了资源泄露2.解决方.
2022-01-12 19:14:32 2277 2
原创 Qt6.2.2+libCef Demo
Qt 6.2.2 + libCef Demo 先看看效果如何:1.如何集成 1.1 目录整理 在编译好libCef文件之后,我们需要对文件目录做一些整理。libCef的include头文件libCef编译的二进制文件自己的源码目录使用vs2019创建Qt项目,这里我就略过。最后目录格式如下所示:│ QCefWindow.sln│ QSimpleCef.vcxproj│ QSimpleCef.vcxproj.filters│ ├─bin│ ├─debug│ │
2022-01-04 19:10:18 1479
原创 vs2019编译libcef
vs2019编译libcef 1.材料准备 libcef官网地址:https://bitbucket.org/chromiumembedded/cef/src/master/libcef二进制下载地址:https://cef-builds.spotifycdn.com/index.html#windows32版本:cef_binary_96.0.16+g89c902b+chromium-96.0.4664.55_windows32cmakevs enterprise 2019我原本以为我的
2021-12-28 16:37:30 951 1
原创 最新版Qt6.2.2首发编译
Qt 6.2.2编译编译大型项目源码这件事情,你要是没有搞过,肯定觉得多少都有些难度,但是你一旦实践过,你就会在心里有个大概。所以不要有抵触情绪,动手去实践。从我实践的经验来看,核心就是一点:环境的配置。如何做到环境的最优配置,不污染其他的环境才是核心,还要注意配置信息的输出。一个大型项目,代码基本上没有问题的。如果在编译过程的出现一些非常低级的编译错误,我觉得极大的可能性环境配置有问题。比如,我在编译过程出现的问题: D:/qt/qt-everywhere-src-6.2.2/qtbase/.
2021-12-16 16:33:40 4199 13
原创 vs 编译辅助工具
文章目录编译辅助工具1.脚本介绍2.原理介绍编译辅助工具1.脚本介绍这个脚本的主要目的如下:命令行自动编译程序杀掉程序启动程序更新代码支持命令行字体颜色高亮可以帮我节省几分钟的时间。剩下的这几分钟时间,可以让我思考刚才修改的代码有没有问题。还有一些配置通过脚本config.json配置PS D:\code>.\compile.py -husage: compile.py [-h] [-u] [-pre] [-k] [-s] [-c] [-a CO
2021-12-15 16:00:46 697
原创 QWebView中JS和C++通信,利用QWebView生成图片
1.主要目标 用最简单的代码实例相互通信 JS调用C++代码 C++调用JS代码 利用QWebView渲染出png图片 2.介绍项目的情况在项目中只要用到了浏览器组件,不关你是libcef,QWebEngine,QWebView,都少不了和前端通信的需求。在QWebView中做到这些都是很简单的事情,通常也是几行代码的时候。但是也有点小坑要绕着走。1.新建一个项目使用QtCreator新建一个Widget项目的过程,我就省略了啊。里
2021-12-03 14:00:40 1040
原创 QWidget中setMask函数
1.场景说明在项目中,我们有时候会遇到一些特殊的UI场景。比如如下图所示:这种带阴影的模糊效果,其实这种效果的方法很多。但是我想的是,尽量不要让我自己手动写代码实现效果。用UI设计器能搞定就行了。尽量少手写代码像这种的带浮层的阴影效果,最上面就是一层阴影的窗口。这样就会有一个问题,就是上面的是阴影窗口。如果下面有按钮或者其他的窗口,你点击的时候就不会有事件过来。因为事件被上一层窗口截获了。有的朋友就可能会想到用setAttribute(Qt::WA_Transparen...
2021-11-26 13:56:54 4381
原创 QSS设置字体透明度
1.效果演示我先上效果图看看。// 不带效果样式表QLabel{font: 11pt "Arial";color:#FF00FF00;}// 带效果样式表QLabel{font: 11pt "Arial";color:#2F00FF00;}我想你已经发现了,color的前两位十六进制就是表示透明度(0~255),后面的6位就是RGB。2.思考的过程接下来我想跟你说说,我是怎么思考的过程。这个才是解决问题的本质。当看到UI设计师的标注图的时候。...
2021-11-21 17:02:57 2186
侯捷的多型与虚拟的sourc ecode
2017-10-17
(C语言)字符串库
2015-01-20
小甲鱼汇编语言课件+源代码
2014-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人