自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

草上爬的博客

专注技术,热爱分享,QQ:302877285

  • 博客(23)
  • 资源 (173)
  • 收藏
  • 关注

原创 TCP、UDP数据包大小的限制

1、概述首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。   其中以太网(Ethernet)的数据帧在链路层   IP包在网络层   TCP或UDP包在传输层   TCP或UDP中的数据(Data)在应用层   它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}    不同的协议层对数据包有不同的称谓,在传输层叫做段(se

2016-05-29 10:27:34 122867 13

原创 C++笔试题之String类的实现

C++笔试题之String类:在这个类中包括了指针类成员变量m_data,当类中包括指针类成员变量时,一定要重载其拷贝构造函数、赋值函数和析构函数,这既是对C++程序员的基本要求,也是《Effective C++》中特别强调的条款。访问限制标号是针对类而不是针对一个类的不同对象,一个类的成员函数可以访问这个类的私有成员,即使这个私有成员在同类型的其它实例对象中。仔细学习这个类,特别注意加注释的得分点和加分点的意义,这样就具备了60%以上的C++基本功!拷贝构造函数和赋值函数为何可以调用引用参数对象的私有成员

2016-05-29 09:12:17 19686 6

原创 Qt换肤之二:基于QSS+XML

上篇 Qt换肤之一:基于QSS 中实现了基于QSS换肤,但是QSS文件通常不会暴露出来,这样的话软件发布后,皮肤颜色也就无法修改了。这里依然用到了QSS文件,但是只用了一份QSS文件,文件里的颜色值通过XML来配置。XML举例,这个XML很简单,实际使用时会复杂很多。XML解析,更复杂XML文件的解析可参考:Qt之读(解析)XML文件QSS文件根据XML替换QSS中的变量源码链接:TestUI.rar-C++文档类资源-CSDN下载原创不易,转载请标明出处:Qt换肤之二:基于QSS

2016-05-28 22:26:38 4130

原创 Qt换肤之一:基于QSS

1.新建多个QSS文件2.为各个QSS文件编写对应的样式代码3.换肤时,进行全局切换这种方法只需熟悉QSS文件的写法,好在Qt帮助文档例子很多,要写出好看有个性的效果还得自己多实践但是皮肤的数量就是QSS文件的个数,软件发布后无法再修改皮肤颜色了换肤的代码如下:黑色主题QSS文件:橙色主题QSS文件:如果出现QSS文件编辑后,样式失效的问题,可参考:Qt修改QSS文件后导致样式表不生效_草上爬的博客-CSDN博客源码链接:TestUI.rar-C++文档类资源-CSDN下载原创不易

2016-05-22 20:19:27 3223 2

原创 Qt实现自定义按钮的三态效果

有时候我们需要实现动态按钮,即三态按钮,默认一个状态,鼠标悬浮一个状态,点击时一个状态,有时候还包含禁用状态。 按钮的三态,指的是普通态、鼠标的停留态、点击态,三态是界面交互非常基本的一项功能,Qt中如果使用的是原始的按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果,工具栏中的图标也具备三态效果,但是如果自定义的图标这个效果就没有了。 下面整理下

2016-05-22 18:55:17 11631 1

原创 Qt之调用Windows图片查看器预览图片

Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件。ActiveQt包含了两个组件QAxContainer和QAxServer。lQAxContainer允许我们使用COM对象,并且可以将将ActiveX控件嵌入到Qt程序中去。lQAxServer可以将我们写的Qt控件导出

2016-05-22 17:21:52 8450 3

原创 linux:error while loading shared libraries: /usr/lib/xx.so.xx: file too short

今天将linux上交叉编译的jrtplib和jthread库拷贝到ARM开发板的/usr/lib目录,结果运行测试程序的时候报错,如博文标题所示。 交叉编译明明没有问题,为什么会这样呢,百思不得其解。最后在/usr/lib下执行ls -al发现jrtplib和jthread库的大小都为0,原来是拷贝失败了,重新拷贝后,测试程序正确运行。

2016-05-16 22:16:46 9298 1

原创 linux下交叉编译jrtplib-3.9.1

一、下载jrtplib、jthread、CMakejrtplib:http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.9.1.zipjthread:http://research.edm.uhasselt.be/jori/jthread/jthread-1.3.1.zipCMake:https://cmake.org

2016-05-15 14:50:04 3678

原创 linux下编译jrtplib-3.9.1

一、下载jrtplib、jthreadjrtplib:http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.9.1.zipjthread:http://research.edm.uhasselt.be/jori/jthread/jthread-1.3.1.zipCMake:https://cmake.org/downl

2016-05-15 14:25:24 4686

原创 linux:/usr/bin/ld:cannot find -lIN

最近在RedHat上编译jrtplib库时,报错如下错误。/usr/bin/ld:cannot find -lIN,但是根本找不到libIN,原来是cmake的版本太低的缘故,于是将cmake 3.4.0源码拷贝到RedHat中编译安装。编译安装的步骤如下。cd到cmake源码目录./bootstrapmakemake install然后测试安装是否成功,如果打印cma

2016-05-15 12:31:27 2031 1

原创 Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt

一.在pro中设置运行时库最近在用Qt5.6.0(VS2013版本)调用一份用Visual Studio 2013编译的Debug版本静态库时出现如下错误:error: LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(widget.obj 中)从这个错误可以看出该Debug版

2016-05-15 11:26:29 21257 5

原创 Qt在pro中管理多个子项目(子工程)

将TEMPLATE设置为subdirs即可,如下图所示:

2016-05-15 09:45:38 6565

原创 Qt基础之二十八:在Qt中使用单例模式的最佳实践

ARGS被用来传入Type构造函数所需的参数,Q_GLOBAL_STATIC的ARGS是空括号(),表示调用Type的无参构造函数,如果我们使用Q_GLOBAL_STATIC_WITH_ARGS给它参数,就是调用对应的带参构造函数了。Q_GLOBAL_STATIC宏定义的变量则消除了这些问题,Q_GLOBAL_STATIC仅在第一次调用时才构造和初始化,节省了应用程序初始化加载的时间,确保了是线程安全的。使用Q_GLOBAL_STATIC_INTERNAL宏定义了一个innerFunction函数。

2016-05-14 17:58:55 11200 1

原创 Qt基础之二十二:重启应用程序

重启应用程序有两个常见的引用场景,切换账号和保存特定配置后需要重启。有时候程序运行出现问题,也希望能够通过重启来解决。重启实际上就是关闭当前应用程序,然后再启动一个新的进程执行当前应用程序。

2016-05-14 15:37:25 6331

原创 Qt基础之七:事件循环

局部事件循环几乎包含主事件循环的所有功能(当局部事件循环被激活时,GUI界面的响应相关事件已经被包含到局部循环中了),所以当在主线程中启动各种exec()(比如QEventLoop::exec())时,虽然会中断main函数中的QApplication::exec(),但界面还是可以正常响应,不会出现卡住的现象,只有当局部事件循环跳出 exec() 后,父层事件循环才能继续循环下去。这里不的不说一下Qt事件和windows消息的关系,Qt的事件是windows的底层消息封装而成的。

2016-05-14 15:23:22 6420

原创 Qt基础之十二:Qt多线程基础

每个程序在启动时都有一个线程,这个线程被称为“主线程”(在Qt应用程序中也称为“GUI线程”)。Qt GUI必须在主线程中运行。所有widgets和一些相关的类,例如QPixmap,都不能在辅助线程中工作。辅助线程通常被称为“工作线程”,因为它用于减轻主线程的工作负担。

2016-05-14 15:15:48 6069

原创 Qt修改QSS文件后导致样式表不生效

尽管每次和cmake对比起来,我们总是说 qmake 简单、功能少。但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧:不是太清楚CONFIG等变量到底如何起作用的用过的qmake内置变量和函数不超过20个看Qt Creator源码或者QtSolution等库中自己使用的 *.pro 文件就想看天书一样本文只能抓住一条线,简单介绍一下 *.pro、*.pri、

2016-05-14 15:03:16 3292 1

原创 Qt实现QQ截图中的马赛克效果

stylesheet本文不准备谈样式表的使用。因为Manual中介绍的很清楚了,给的例子也都很不错。再就是我本身对CSS语法不太熟,术语把握不好,qss用的不多。不过,有两个问题新手似乎特容易迷惑,简单提一下:QWidget直接派生类的样式表不起作用典型的表述(之一)是,从QWidget派生一个窗口,使用stylesheet设置背景,在designer中可以

2016-05-14 14:16:21 6514 3

原创 Qt中控件类的提升

这里以pushButton按钮的提升为例,自定义的类如下所示。cmypushbutton.h#ifndef CMYPUSHBUTTON_H#define CMYPUSHBUTTON_H#include #include class CMyPushButton : public QPushButton{public: CMyPushButton(QWidget *p

2016-05-14 12:21:45 22817 5

原创 linux:error while loading shared libraries xx.so

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误,比如:error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 原因一般有两个,一个是操作系统里确实没有包含该共享库(lib*.so

2016-05-13 21:47:29 2310 1

原创 linux下交叉编译ffmpeg,并加入H264编码支持

1.libx264 编译./configure --enable-static --disable-asm --prefix=/usr/local/ffmpegDM3730 --arch=arm --host=arm-linux --cross-prefix=arm-arago-linux-gnueabi- 2.ffmpeg 编译./configure --enable-share

2016-05-13 09:31:48 7734 1

原创 linux下编译ffmpeg,并加入H264编码支持

1.libx264 编译./configure --enable-static --disable-asm --prefix=/usr/local/ffmpegRedHat2.ffmpeg 编译./configure --enable-shared --disable-yasm --enable-memalign-hack --enable-libx264 --enable-gpl

2016-05-13 09:21:47 10769 1

原创 Qt在pro中实现条件编译

在用Qt进行嵌入式linux开发时,有时为了调试便利,桌面版linux环境也会配置一份,这样在编译时就会调用不同版本的库。qmake提供很多功能强大的内置函数和变量,为动态编译项目提供了便利。 方式一:使用contains()DEFINES += RUN_ON_EMBEDDEDSYSTEMif(contains(DEFINES,RUN_ON_EMBEDDEDSYSTEM)){#cont

2016-05-13 09:04:49 12554 1

Qt高仿QQ截图

使用Qt高仿QQ截图,实现了画图形、画线、画刷、写文字、重做等功能

2017-11-27

20种数据结构和算法的C++实现

20种数据结构和算法的C++实现,详见博客:http://blog.csdn.net/caoshangpa/article/details/78557334

2017-11-17

Qt下用QSplitter实现滑动窗口

Qt下用QSplitter实现滑动窗口,详见博客:http://blog.csdn.net/caoshangpa/article/details/78549788

2017-11-16

Qt实现窗体缩放

用Qt实现的跨平台窗体缩放,详见博客:http://blog.csdn.net/caoshangpa/article/details/78543165

2017-11-15

仿360鼠标拖动图片切换效果

博客中发现有作者写的仿360的代码,觉得其中图片滑动的效果很有意思,特提取其中的代码。并加上类似mac的画面移动的动画效果。

2017-11-15

Qt OpenGL+Graphics-View

示例+源码,QtOpenGL以及Graphics-View框架整合的例子

2017-11-14

Qt之调用zlib

Qt调用zlib的例子,详见博文:http://blog.csdn.net/caoshangpa/article/details/78528930

2017-11-14

Qt Quick实现九宫格锁屏视图

九宫格划指锁屏视图 Lisence: MIT, 请保留本文档说明 Author: surfsky.cnblogs.com 2015-02

2017-11-14

QML实现图像处理,包括浮雕、锐化等效果

使用 Qt Quick 实现的图像处理实例,支持黑白、锐化、底片、柔化、灰度、浮雕等特效。展示 Qt 中 QML 与 C++ 混合编程技术、多线程、自定义事件等关键技术。 原作者:foruok

2017-11-14

Qt插件调用实例

实例讲解Qt如何实现插件的调用,详见博客:http://blog.csdn.net/caoshangpa/article/details/78506322

2017-11-11

重构-改善既有代码的设计 高清pdf 带书签

重构-改善既有代码的设计 高清pdf 带书签

2017-07-16

程序员必读之软件架构 高清pdf 带书签

程序员必读之软件架构 高清pdf 带书签

2017-07-16

c++获取OpengL版本号的两种方法

源码,没啥说的

2017-06-02

WebRTC学习之四:最简单的语音聊天

使用WebRTC实现了最简单的语言聊天 详见博客:http://blog.csdn.net/caoshangpa/article/details/53889057

2017-01-10

Qt动画效果展示

展示了Qt动画的使用,效果非常炫 详见博客:http://blog.csdn.net/caoshangpa/article/details/53964789

2017-01-01

WebRTC学习之三:录音和播放

使用WebRTC C++实现的录音与播放功能,界面用的Qt。 详见博客:http://blog.csdn.net/caoshangpa/article/details/53446916

2016-12-26

VC实现单文档切分窗口

VC实现单文档切分窗口

2016-12-03

VC通过DirectShow进行视频预览和捕获

VC通过DirectShow进行视频预览和捕获

2016-12-03

VC局域网象棋对战(毕业设计)

VC局域网象棋对战(毕业设计),含设计文档

2016-12-03

PDF密码移除工具

PDF密码移除工具,非常好用

2016-12-03

Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),说起Qt,就不能避开国际化,国际化步骤: 如果Qt程序中有QObject::tr()包裹的字符串,对这个应用程序的翻译主要包含三步: ①.运行lupdate工具从C++源代码中提取要翻译的文本,这时会生成一个.ts文件,这个文件是XML格式的; ②.在Qt Linguist中打开.ts文件,并完成翻译工作; ③.运行lrelease工具从.ts文件中获得.qm文件,它是一个二进制文件。这里的.ts文件是供翻译人员使用的,而在程序运行时只需要使用.qm文件,这两个文件都是与平台无关的。 详见博客:https://blog.csdn.net/caoshangpa/article/details/135319397

2023-12-31

Qt之实现遮罩窗口,实现了窗口遮罩效果

参考链接:https://blog.csdn.net/caoshangpa/article/details/53053409

2022-07-24

QHVlcPlayer.rar

Qt+libVLC,使用QWidget和QOpenGLWidget两种方式渲染:详见博客https://blog.csdn.net/caoshangpa/article/details/114182802

2021-02-27

Qt+libVLC+QWidget渲染

从libVLC中抽帧,然后用QWidget渲染,详见博客:https://blog.csdn.net/caoshangpa/article/details/114171203

2021-02-27

Qt调用libVLC实现播放器

可以播放本地文件和网络url,详见博客:https://blog.csdn.net/caoshangpa/article/details/114156273

2021-02-26

TestUI.rar

Qt换肤详见博客: https://blog.csdn.net/caoshangpa/article/details/51476644 https://blog.csdn.net/caoshangpa/article/details/51527121

2021-02-09

QHOpenGLPlayer.rar

使用QOpenGLWidget渲染yuv420p,详见博客:https://blog.csdn.net/caoshangpa/article/details/112448207

2021-01-10

Qt使用SDL2\D3D渲染YUV420p

Qt使用SDL2\D3D渲染YUV420p

2021-01-09

基于Qt和SDL2播放PCM

基于Qt和SDL2播放PCM,参考博客:https://blog.csdn.net/caoshangpa/article/details/112226484

2021-01-05

QML实现点赞送礼物效果

Qt5 QML实现,详见博客:https://blog.csdn.net/caoshangpa/article/details/112195530

2021-01-04

Qt5版NeHe OpenGL教程6-10

Qt5版Nehe OpenGL教程,第六课到第十课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80323712

2018-05-17

Qt5版Nehe OpenGL教程1-5

Qt5版Nehe OpenGL教程,第一课到第五课,详见博客:https://blog.csdn.net/caoshangpa/article/details/80270855

2018-05-14

Qt4版NeHe OpenGL教程 源码

Qt4版NeHe OpenGL教程 源码,NeHe的教程虽然时间久远,但是仍然是入门的好教程,至少对三维概念的了解很有帮助。

2018-05-12

Qt调用OpenGL API实现彩色旋转立方体

详见博客:https://blog.csdn.net/caoshangpa/article/details/80258907 源码中包含了glu和glut等库

2018-05-09

串口调试助手

串口调试助手,自己用的,还不错。可以设置16进制发送和接收。

2018-03-16

MyTcpClient

Qt实现的TCP客户端,用于和State Thread库的Server例子进行调试。详见博客:http://blog.csdn.net/caoshangpa/article/details/79582873

2018-03-16

Boost.Asio C++ Network Programming随书源码

Boost.Asio C++ Network Programming随书源码,书的下载链接:http://download.csdn.net/download/caoshangpa/10229882

2018-01-29

Boost.Asio C++ Network Programming(高清,带书签,可复制)

Boost.Asio C++ Network Programming(高清,带书签,可复制)

2018-01-29

Effective Modern C++ 英文原版(带书签)

Effective Modern C++ 英文原版(带书签),稍微有点英语基础就可以看懂,C++11和C++14学习必备

2018-01-27

Qt之绘制灵动的小鱼

使用Qt绘制的小鱼,用到了很多算法,包括贝塞尔曲线等,非常值得学习借鉴

2018-01-14

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

TA关注的人

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