- 博客(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基础之二十八:在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
20种数据结构和算法的C++实现
2017-11-17
Qt下用QSplitter实现滑动窗口
2017-11-16
QML实现图像处理,包括浮雕、锐化等效果
2017-11-14
WebRTC学习之四:最简单的语音聊天
2017-01-10
WebRTC学习之三:录音和播放
2016-12-26
Qt国际化(I18N)
2023-12-31
QHVlcPlayer.rar
2021-02-27
Qt+libVLC+QWidget渲染
2021-02-27
Qt调用libVLC实现播放器
2021-02-26
TestUI.rar
2021-02-09
QHOpenGLPlayer.rar
2021-01-10
基于Qt和SDL2播放PCM
2021-01-05
Qt5版NeHe OpenGL教程6-10
2018-05-17
Qt5版Nehe OpenGL教程1-5
2018-05-14
Qt调用OpenGL API实现彩色旋转立方体
2018-05-09
MyTcpClient
2018-03-16
Boost.Asio C++ Network Programming随书源码
2018-01-29
Boost.Asio C++ Network Programming(高清,带书签,可复制)
2018-01-29
Effective Modern C++ 英文原版(带书签)
2018-01-27
++i和i++哪个更高效
2023-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人