自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (17)
  • 收藏
  • 关注

原创 C++幕后故事(七)--一个对象的生与死

C++幕后故事(七)–一个对象的生与死这节里面我们会学习到以下四点:1.对象的生成时机2.对象构造过程和POD类型3.对象的复制语意4.析构语意1.对象生成的时机根据对象的控制力度不同,对象的生成时机也是不一样的。我们可以把它分为两类:1.new操作符用户手动控制时机,随时new,随时生成。2.编译器控制下也是有细微的差别,请看下面的表格。全局对象/...

2019-10-28 13:45:59 522 1

原创 C++幕后故事(九)--我们来new个对象

读者如果觉得我文章还不错的,希望可以多多支持下我,文章可以转发,但是必须保留原出处和原作者署名。更多内容请关注我的微信公众号:cpp手艺人。这个章节我们主要学习以下几个知识点:1.数据成员绑定时机。2.多种模型下数据成员布局。3.数据成员如何读取的。4.进程内存布局1.数据成员绑定时机大家一看标题可能有点懵了,什么叫数据成员的绑定时机。请随我看段代码,这段代码节选自《深入探索C++...

2019-10-14 10:52:21 708 1

原创 QWebEngine图片渲染性能优化

我们有一个这样的场景,就是利用QWebEngine把网页渲染成图片,再传给服务器。我们当初采用QWebKit来渲染的,因为考虑网页可以更灵活,而且实现起来简单。当时当我们升级Qt版本从5.5升级到5.15之后就发现,在性能差的虚拟机里面渲染2张图片,几百KB的图片就已经很吃力了。往往渲染的图片不正常,有部分黑影。最主要的就是图片渲染得不全,一边有图片一边是黑色背景。

2022-09-19 13:05:17 78

原创 编译OpenSSL注意事项

编译openssl总结

2022-09-02 11:02:03 93

原创 Qt升级血与泪

Qt升级一波三折

2022-08-16 09:24:05 4170 7

原创 vs code导航到Qt 源码

在项目中经常会需要看看Qt的源码,所以需要定位到Qt source code中。

2022-08-05 10:13:44 395

原创 shellexecute启动程序出错

ShellExecute执行,程序报错。required application data could not be found.

2022-07-20 15:20:21 183

原创 Python读取exe中导入的dll名称

在项目中经常添加一些Qt模块,但是如果每次打包人工的去搜索复制,也是一件挺烦人的事情。所以写个脚本去做这件事情,顺理成章的事情。顺便学下python语法。

2022-06-29 15:12:48 521

原创 美化QTabWidget(3)

增加无边框窗口功能(缩放,移动)增加tab贴图功能双击关闭tab可以设置是否需要绘制“+”按钮。支持tab拖拽,合并将绘制接口导出来,方便用户自定义绘制和贴图

2022-06-23 13:54:49 253

原创 Qt中诡异现象UI被切割的问题

项目升级到Qt 5.15.2之后就发现这个诡异的现象,但是Qt 5.5就没有这个现象。很是麻烦,一点头绪都没有。我们先来看下现象。再看看异常的UI:这两张图片可以看出明显的不一样。第二张图片里面的控件像是被拉伸,切割了一样。其实在真实的项目场景中,UI就像被是切割了一样。先说原因,其实这个是因为系统的DPI发生了变化,导致界面进行了缩放。比如:我先把系统的DPI设置150%,然后软件也会跟着放大1.5倍。我再把系统的DPI还原为100%,此时软件应该恢复到原来的大小,但实际上并没有,而是大小被切割了一

2022-06-14 12:52:58 208

原创 排查自模拟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 80

原创 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 292

原创 美化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 260

原创 美化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 618

原创 QLabel文字被切割

QLabel文字被切割

2022-02-10 15:39:01 183

原创 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 870

原创 libCef退出流程整理

libCef 退出流程整理 1.Check failed: !IsCefShutdown(). Object reference incorrectly错误原因 在实际的开发中,我们在推出cef时候可能会遇到如上的提示错误信息。我们先来从这个错误信息能得出那些重要的信息:首先它只有在debug模式下才会出现的错误,因为release版关闭检测。其次,我们可以简单的了解到对象被不正确的引用。再翻译下就是在退出的时候,资源没有正确的释放。就是退出的时候资源没有清理,造成了资源泄露2.解决方.

2022-01-12 19:14:32 715 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 770

原创 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 375

原创 最新版Qt6.2.2首发编译

Qt 6.2.2编译编译大型项目源码这件事情,你要是没有搞过,肯定觉得多少都有些难度,但是你一旦实践过,你就会在心里有个大概。所以不要有抵触情绪,动手去实践。从我实践的经验来看,核心就是一点:环境的配置。如何做到环境的最优配置,不污染其他的环境才是核心,还要注意配置信息的输出。一个大型项目,代码基本上没有问题的。如果在编译过程的出现一些非常低级的编译错误,我觉得极大的可能性环境配置有问题。比如,我在编译过程出现的问题: D:/qt/qt-everywhere-src-6.2.2/qtbase/.

2021-12-16 16:33:40 2087 12

原创 vs启动进程设置环境变量

vs启动进程设置环境变量

2021-12-15 19:21:29 522

原创 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 261

原创 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 518

原创 QWidget中setMask函数

1.场景说明在项目中,我们有时候会遇到一些特殊的UI场景。比如如下图所示:这种带阴影的模糊效果,其实这种效果的方法很多。但是我想的是,尽量不要让我自己手动写代码实现效果。用UI设计器能搞定就行了。尽量少手写代码像这种的带浮层的阴影效果,最上面就是一层阴影的窗口。这样就会有一个问题,就是上面的是阴影窗口。如果下面有按钮或者其他的窗口,你点击的时候就不会有事件过来。因为事件被上一层窗口截获了。有的朋友就可能会想到用setAttribute(Qt::WA_Transparen...

2021-11-26 13:56:54 1232

原创 QtCreator不能加载qrc里面的资源

QtCreator不能加载qrc里面的资源

2021-11-25 16:57:41 499

原创 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 1078

原创 bat获取命令行上面的参数总数

bat获取命令行上面的参数总数

2021-11-17 17:18:29 729

原创 Qt--编译QtWebEngine支持mp4

Qt--编译QtWebEngine支持mp4

2021-11-17 14:15:02 993

原创 自定义Qt控件系列-实战(3)

先不说发废话了,我们直接上图看效果 支持文字描边(描边颜色,描边大小) 支持文字颜色动态修改,即所见所得 支持文字省略(省略号:左边,居中,右边) 支持click,MouseEnter,MouseLeave信号 我们还是老规矩创建个插件的项目,不过这次大家在创建的时候,有些选项需要注意下。就是在这里的时候需要注意继承的QLabel,其他的都不是重点了。1.代码展示接下来,我和大家一起看下代码的中实现。其实坐下来发现,掌握思路,实现起来并不是很难..

2021-11-15 12:49:18 469

原创 自定义Qt控件系列-自定义属性和信号(2)

这篇文章主要想和大家分享在自定义控件中在designer中的显示问题,以及如何自定义属性和信号。哈哈,要解决的问题挺多的。让我们一个个来,不着急。1. 解决在designer中的分组名字和图标这个是我们上一节课的显示出来的。这个分组名字不够大气,图标不能体现个性。让我们看看customwidget2plugin.cpp里面都有啥内容,或许能找到我们感兴趣的东西。下面的这段代码就是我们比较感兴趣的了。// 控件的名字,注意这里的名字必须和class name保持一致Q...

2021-11-11 15:36:57 681

原创 自定义的Qt控件系列-创建项目(1)

在开发过程中,我们可能会复用控件的需求,比如说一些自定义的QLabel,QPushButton控件。一次开发,到处使用。所以就有必要把这个控件独立出来,哈哈,想想还是挺有意思的,以前都是用Qt自带的控件,这次可以把自己的控件给别人使用。1. 结果展示注意下图的3点:在Widget 窗口中里面增加了自定义窗口部件 custom_widget 在中间的Form窗口中添加custom_widget控件,在控件绘制了一行文字 在最右边的属性设计器自定义3个属性2. 具体的步骤 Qt.

2021-11-11 15:28:59 414

原创 人生就泡面

这张图片拍摄于2021/02/28。 人生就着泡面吃,不知道是泡面香,还是人生香。 当时正在看路遥的人生这本小说,我基本上2天左右时间的时间就看完了。里面的故事情节和《平凡的世界》还是挺相似的,尤其是主人公的爱情线感觉很是类似,就是男女的身份对换了。 看完《人生》的最大感想就是人生的路上总有一条那么关键的转折点,如果选错了,没有机会重来,只能留下一声声的感叹。 让我想到了自己入了程序员这个行当,就意味要不断的学习新知识,新...

2021-03-11 20:39:35 54 1

原创 小白学习音视频(四)源码编译OpenCV

小白学习音视频(四)源码编译OpenCV关注微信号:cpp手艺人,获取更多文章1.源码下载,OpenCV的源码放在github上面了。git clone https://github.com/opencv/opencv但是我用的不是最新的源码编译的,我用的是3.3.1编译。2.使用cmake生成vs2013 解决方案。我这里使用的cmake版本是cmake-3.17.2-win64-x64,大家可以根据需要自己在cmake的官网自行下载,下载地址:https://cmake.org/do

2020-06-24 14:12:00 169

原创 小白学习音视频系列(三) 使用FFmpeg推流

小白学习音视频系列(三)使用FFmpeg代码推流关注微信号:cpp手艺人,获取更多文章文章目录小白学习音视频系列(三)使用FFmpeg代码推流这一节主要是通过FFmpeg推流,主要就是代码部分,我做了详细的注解这里有几个注意点还是需要注意下的1.首先要记得开启nginx rtmp服务2.服务端口记得要开启3.ip地址需要换成你自己4.当你推流成功之后,点击bin目录下的play.bat,同时注意下把play.bat里面的ip地址换成你自己的,就会启动ffplay.exe拉流#inclu

2020-06-24 14:11:01 227

原创 Qt开源小项目--查看dll,exe的版本信息

Qt开源小项目–查看dll,exe的版本信息先上图看看效果:在工作可能经常遇到的对文件的签名,dll和exe中所带的信息进行提取和验证。所以我就封装成一个类,以后直接调用了,非常的方便。大家拿到这个类就可以直接使用在项目中。这里我就贴出主要的代码,我会把完整的项目放到github上面。/******************************************************************************** Copyright (C) 2018 lius

2020-06-12 16:03:38 641 2

原创 小白学习音视频系列(二) 编译nginx rtmp模块

小白学习音视频系列(二)编译nginx rtmp模块关注微信号:cpp手艺人,获取更多文章文章目录小白学习音视频系列(二)编译nginx rtmp模块1.先下载nginx源码2.在下载nginx的RTMP模块3.准备编译源码4.使用ffmpeg推流5.使用nginx查看推流的详细信息1.先下载nginx源码创建一个新的目录mkdir nginx cd nginx wget http://nginx.org/download/nginx-1.18.0.tar.gz 下载完源码之后,解压

2020-06-09 11:09:56 170

原创 小白学习音视频系列(一) 搭建自己的直播服务器

小白学习音视频系列(一)利用crtmpserver和FFmpeg快速搭建自己的直播服务器关注微信号:cpp手艺人,获取文章1.准备环境1.需要首要ubuntu系统环境,我的是ubuntu 14.04 64位系统真机,你用虚拟机也可以的。2.连接网络,因为我们需要下载编译。3.使用xshell连接到机器里面。(非必需)4.安装vlc播放器,这个自己网络百度下,等会我们拉流的时候需要用播放器测试。2.命令行编译这里的操作及其容易发生错误,希望大家一定要按照我的步骤来操作。1.安装wge

2020-06-04 16:04:40 744

原创 Qt源码分享(四)--自定义标签,源码分享

Qt源码分享(四)–自定义标签,源码分享由于最近的疫情的影响,导致公司走了一部分人。又是项目的重新启动,导致我没有时间写文章了。分享一些自定义控件,是从公司的项目中抠出来的。关注微信号:cpp手艺人,获取源码好,废话不说,先看看效果怎么样。1.自绘制图片2.大小自适应注意:这个demo只是演示使用的,里面的一些内存还没有释放,如果你要套用一定要注意内存问题,因为一些内存问题的释放和业务有关系,这里我就做下演示。这里我贴出主要的代码:void TabButton::Resize(const

2020-05-26 19:06:21 278

原创 Qt源码分享(三)--自定义menu

关注微信公众号在菜单栏获取源码这里分享下,Qt下面的自定义的menu。先上效果图。我这个只是简单的做个demo,如果你想要更复杂的效果,就要重写QPushButton或者是其他的控件,原理都是一样的。我贴出里面的重要代码:void CustomMenu::initMenu(){ m_AppMenu = new QMenu(this); m_AppMenu->s...

2020-04-02 13:38:33 490

原创 Qt源码分享(二)-- 圆角+阴影+可移动+大小可变+标题

Qt源码分享(一)-- 圆角+阴影+可移动+大小可变关注微信公众号在菜单栏获取源码在源码分享(一)基础上,实现无窗口实际上还是有点不完整,这次我在原来代码的基础上增加了标题栏好,我们先看下效果:#include "centerwidget.h"#include <QApplication>CenterWidget::CenterWidget(QWidget *par...

2019-11-22 17:43:47 150

git实战笔记.pdf

新手快速入门,git笔记

2021-11-29

侯捷的多型与虚拟的sourc ecode

这个是侯捷的多型与虚拟书籍的源代码文件。 //---------------------------------------------------------------- // 檔名:mfclite.cpp // 作者:侯捷 J.J.Hou (jjhou), jjhou@jjhou.com, www.jjhou.com // 用途:MFCLite 3.5,一個具體而微的 MFC-like application framework // 本模組供應之功能: // (1) Infrastructure: Dynamic/DynCreate/Serial // (RTTI/Dynamic Creation/Persistence) // (2) Application Framework // (3) Message Map // (4) Message Routing // (5) MVC Model (Document-View) // (6) Message Queue, Hotkey for menuitems and messages // (7) File operations (New, Open, Save, SaveAs) // (8) Multiple Documents // (9) MDI // (10) Subscribe-Notify protocol // (11) OnWindowNew(), CMyView3, AfxWinTerm(), ExitInstance(), OnAppHotKeyHelp() // (12) fixup resource leak in CDocument::OnOpenDocument, // CDocument::OnSaveDocument // and optimize CPtrList // (thanks xioax) // (13) optimize Document Read/Write (use tags) // (14) window-close subsystem

2017-10-17

(C语言)字符串库

上一篇 自己动手写字符串库函数 三(C语言) //重置 void my_StrSet(string *des, const char ch) { if (!IsEmpty(des)) return; else { char* des1 = des->str; int desLen = my_StrLen(des->str); while (desLen--) *...

2015-01-20

快速排序(C语言实现)

利用C语言实现的快速,在GCC编译运行通过,在windows没有问题

2014-12-07

插入排序(C语言实现)

利用C语言实现的插入排序算法,在gcc下编译成功,在windows下完全可以的

2014-11-30

冒泡排序算法

完整的代码实现了冒泡排序,在GCC完全能够运行,不信你试试

2014-11-23

小甲鱼汇编语言课件+源代码

小甲鱼汇编语言课件+源代码 小甲鱼零基础入门学习汇编语言的课件和源代码。 小甲鱼的汇编语言讲的很好,支持小甲鱼~ 资料中包含了小甲鱼视频的所有PPT和源代码。

2014-11-05

linux 汇编

对汇编、驱动程序感兴趣的可以下载来看看,不过这是英文版的,有很详细的目录。该书作者是Randall Hyde,他同时著有《汇编语言艺术》等名作

2014-11-03

编程之道 pdf

如今程序设计类的图书可谓是层出不穷,其中绝大部分是以教程、使用手册和编程技巧为主,它们都是用来处理一些技术性的问题的。 然而,怎样领悟程序设计的内涵和精髓呢?程序员编程时是一种怎样的思维方式?

2014-07-22

jquery-easyui-1.3+帮助文档

真实可用,一验证过,想要的同学拿去,jquery-easyui-1.3+帮助文档

2014-07-19

三层实现登陆 web

使用标准三层实现的登陆 非常适合新手学习和借鉴

2014-06-15

windows记事本

实现了windows下面的记事本所有的主要功能,比如“查找”和“返回查找”,“替换”主要功能。

2013-09-06

C#学生管理系统

用三层架构实现的学生管理系统,主要就是实现了增删查改的功能

2013-08-06

把Excle表格导入sql数据库中

C#写的窗体程序,就是为了把Excel表格内容更新到sql

2013-08-04

代码生成器

这是个简易版的代码生成器,适合新手们交流和学习,也希望大家相互进步

2013-06-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除