- 博客(55)
- 资源 (11)
- 收藏
- 关注
原创 Linux下使用dd命令生成指定大小的文件及生成多个文件
可以借助dd命令生成指定大小的文件,文件填充的内容可以是顺序也可以是随机的;除此之外,也可以借助shell命令批量生成多个文件,以供特殊场景测试。
2024-03-08 11:04:35 333
原创 OpenGL入门概念汇总
现代函数要求使用者真正理解OpenGL和图形编程,它有一些难度,然而提供了更多的灵活性,更高的效率,更重要的是可以更深入的理解图形编程。例如有一些作为3D模型数据(一栋房子或一个人物)的容器对象,想绘制其中任何一个模型的时候,只需绑定一个包含对应模型数据的对象就可以了(当然,我们需要先创建并设置对象的选项)。所有OpenGL的更高的版本都是在3.3的基础上,引入了额外的功能,并没有改动核心架构。使用对象的一个好处是在程序中,我们不止可以定义一个对象,并设置它们的选项,每个对象都可以是不同的设置。
2024-03-06 17:03:40 323
原创 Linux程序崩溃调试
一般而言,项目不会主动加-g来带调试信息,毕竟可执行文件太大了也不够友好。另外,更主要的是,关键时候还不保证会生成core dump文件。这种情况大多是实际要面临的,也是Interviewer喜欢问得。编译时主动带-g,生成的程序带调试信息,而且开启生成dump文件,这时候可以使用core dump来调试程序,定位问题。三、再复杂点:如果core dump文件的堆栈信息被破坏了,又该如何定位问题呢?
2024-03-06 16:07:55 338
原创 QThreadPool解析
首先,适用于线程复用的任务大多都是简单的任务,而线程池为了管理这些数量多的任务,将它们按照优先级进行了分类,同一优先级的任务会放到一个组中,在 QThreadPool 源码中以 QueuePage 类来表示一组任务,从以下代码可以看出最多存储255个任务。」中阐述,这里不再赘述。但是我们知道并不是开越多的线程越好,这时候如果工作的线程过多,我们还是没法利用已有的线程来执行我们的任务,那么我们只能将任务存入任务列表中,等待被这些活跃的线程“临幸”。没有线程的话,那就开辟一个新的线程,然后执行我们的任务。
2024-02-29 11:15:13 388
原创 Model/View中自定义Model——入门篇
使用自定义Model,配合QTableViewQ_OBJECTpublic:signals:private:armyMap[1]=tr("空军");armyMap[2]=tr("海军");armyMap[3]=tr("陆军");armyMap[4]=tr("海军陆战队");weaponTypeMap[1]=tr("轰炸机");weaponTypeMap[2]=tr("战斗机");weaponTypeMap[3]=tr("航空母舰");
2024-02-28 15:34:53 207
原创 QGraphicsView使用范例汇总:入门篇
对于自定义的图元需要注意的是1)如果需要使用Qt的特性,在多重继承当中,一定要将QObject写在QGraphicsItem前面:class CustomItem: public QObject, public QGraphicsItem2)相关的函数需要重载:boundingRect和paint(QPainter *painter, const QStyleOptionGraphicsItem *option,QWidget *widget)
2024-02-28 11:19:45 323
原创 Q_DECLARE_PRIVATE和Q_DECLARE_PUBLIC
简单的来说,就是随着lib/dll库的更新迭代,调用库文件的程序在不需要重编译的情况下仍能够正常使用,以达到"兼容"二进制库文件的变化,这就叫做二进制兼容。对应二进制兼容的还有源代码兼容:就是需要对程序重新编译才能使用新的库文件。Q/D指针只是Qt实现二进制兼容的一种方法,简单的来说就是将功能通过指针对象私有化,隐藏起来具体的细节。
2024-02-27 15:19:13 253
原创 Qt窗体和控件遮罩效果
实现方式一:借助setMask(rect)函数。该函数将设置rect为可见区域,rect可以是控件的规则区域,也可以是bitmap范围。不规则的窗体、窗体上下重叠时需要鼠标穿透、只显示部分区域时。
2024-02-22 14:11:57 353
原创 SSD入门基础
1、HAM:Hardware accelerated modem,硬件加速模块的简称,就是将一些复杂的工作交给特殊的硬件去完成,从而减轻中央处理器的工作量。2、ISA:Instruction set architecture,指令集架构,是软件和硬件的通信基础。SCSI 和RISC是复杂指令集和精简指令集的简称。1、主控中提升顺序读写的设计。
2024-02-19 09:52:26 106
原创 无锁序列系列笔记
下面是常见的一些实现方式:1、借助智能指针来实现。下面是一篇2、借助automic使用CAS(Compare And Swap)原子操作,std::atomic_flag,不同于所有 std::atomic 的特化,它保证是免锁的,不提供load()与store(val)操作,但提供了test_and_set()与clear()操作,其中test_and_set()就是支持RMW的原子操作,可用std::atomic_flag实现自旋锁的功能。
2024-02-04 16:18:43 332
原创 OpenGL入门
除此之外,我还发现了其他的书籍,不过不确定有没有中文版。名字是:learn opengl-graphics programming。经典的有红蓝宝书,不过一本便库函数索引,不太适合作入门;另一本理论知识点介绍多,适合入门。后面可能空了会对此书作阅读记录。
2023-11-17 13:53:57 42
原创 inno setup自定义详解
先看效果图第一步:当不勾选同意协议时:支持多语言自动切换支持单例启动校验支持已安装校验支持......首先自定义界面。主要是贴图和各种事件响应,部分核心代码如下: {界面创建入口} procedure InitializeWizard(); begin WizardForm.Center Wi...
2020-04-14 14:12:44 1587
原创 编码注意事项
1、默认值1、默认值的问题主要体现在以下几个场景局部变量。由于局部变量不会在声明时被初始化,因此它的值也是未知的,如果不对它初始化,那结果显然是未知的函数出参、返回值。对于有返回值的函数,无论是否完整走完内部逻辑、亦或是因缺失不必要条件而同样完整走完内部逻辑(比如读文件时文件不存在依然会创建文件),都应该有一个表示"计算过程"的默认值,当然这个值应正确代表逻辑执行的情况...
2020-03-25 09:56:20 374
原创 注意事项集合(常年更新中)
汇总了在编码当中应该注意的问题1、QWidget的继承类设置样式表没效果class CustWt: public QWidget{};CustWt custWt;custWt.setStyleSheet("#custShow{background-color:#ff0000}");我们发现上一句样式表并没有达到我们预期的效果,这是因为对于subclass of qwidget,如果...
2020-03-06 10:34:51 150
原创 Qt开发Android范例详入门详解
一个人的成功是岁月的积累和众人乐善好施的结果,我们尊敬那些无私奉献的人,更尊重那些持之以恒的大无畏开拓者.老子狗屁不是,但是为了更多人的成功,无论如何要把成果分享出来,感谢糊涂李哥以及那些帮助我的人Qt开发android主要是借用JNI技术,让我们能够调用android(java代码)的一些方法,从而实现对多平台的兼容,下面我们以具体的实例来一步步学习如何用qt开发android应用...
2020-02-22 10:34:09 5112 3
原创 QGraphics View Framework之QGraphicsItem
Qt的QGraphics View Framework有三个基本构成元素——QGraphicsView、QGraphicsScene和QGraphicsItem,本文来讲讲这个QGraphicsItem,不过在学习它之前最好先搞清楚它们三者之间的关系,详情见视图框架组成成员的关系我们在了解它时从一下几个方面下手,分别是现有Item类、位置信息、转换、绘制现有item类这些都是Qt...
2020-02-06 00:12:17 356
原创 QGraphics View Framework简述
QGraphics View Framework的基本构成和它们之间的关系Qt视图框架QGraphics View Frame有几个基本构成元素,分别是QGraphicsView、QGraphicsScene和QGraphicsItem,这三者分别提供了视图化元素、管理视图元素的容器和视图元素的能力。也就是说QGraphicsItem是基本的图形元素,如一个矩形、一条线、一段文字或者一张照片;...
2020-02-05 23:39:05 286
原创 qt 通过Http/https 模拟 get 和Post请求
简单点,说话的方式简单点.模拟Get请求.h中创建两个变量QString m_strGetURL; //Get请求地址QNetworkRequest m_netGetRequestHead; //Get请求头.cpp中初始化函数中/* 组装协议头 */m_netGetRequestHead.setRawHeader("Acce...
2020-02-04 12:42:09 2357
原创 QThread多线程
qt实现多线程是通过QThread实现的,但很多人对此有误解:把部分任务交付给QThread对象管理即可实现多线程。其实不然,有这么一段话:It is important to remember that a QThread instance lives in the old thread that instantiated it, not in the new thread that cal...
2020-01-14 17:28:43 376
原创 C++ 编译时多态和运行时多态
前言 多态多为C++的三大特性之一,我们对此的了解和应用大多停留在类继承层次和运行时阶段。那既然有运行(动态)时阶段,那是否也有静态的多态?有,那就是编译时多态正文 动态多态 运行时的多态存在于继承类中,通过虚函数实现动态选择调用。简单的说就是通过一张虚函数表——vptable,vptable中记录了基类的虚函数地址,在派生类中继承了基类的这张vptable,而且在派...
2020-01-07 18:02:41 6844 1
原创 使用netsh trace抓包
转载、复制于https://www.jianshu.com/p/4c2eedfe6deeNetsh在Windows7以后,NetSh工具本身已经成为一个功能非常强大的命令行工具。强烈建议任何在Windows系统上提供支持的人来研究学习其提供的所有选项。在本篇文章中,将着重介绍Netsh Trace的使用Netsh Trace在过去,如果你想进行网络数据包跟踪,则需要在终端计算机上安装...
2020-01-06 15:44:06 6004
原创 定位new——placement new
前言 placement new是用来在指定的内存上创建对象,而不是直接在堆栈上创建对象。好处就字然不用多说,一方面避免了大内存申请失败的情况,另一方面对那些效率要求严格的场景也有了改善正文 既然是在指定的内存上创建对象,那么这块内存又是如何被创建出来的?我们来看这块缓冲内存的创建方式缓冲内存的创建方式 *栈区. class CTest; char szBuff[...
2019-12-31 14:45:45 204
原创 c++面试基础
全局变量的初始化顺序以及初始化方式初始化时机*静态初始化.发生在程序加载过程中(可以理解成编译时),对一些简单类型完成用常量对变量的初始化*动态初始化.在main加载前,通过函数调用完成的,或者对一些复杂的类、结构体(调用构造函数)完成初始化。需要说明的是,静态初始化是早于动态初始化的。使用#pragma init_seg(lib)指令,来确保某些全局对象先于其他普通...
2019-12-31 09:34:46 79
原创 同步、异步、阻塞和非阻塞
同步和异步是相对于消息通信机制(访问数据的机制)而言,阻塞和非阻塞是对数据的状态而言阻塞:就是一直等一件事,直到它干完了为止。在等待的期间什么也不干非阻塞:在等待过程中,可以不用一直等,能够做其他事同步:主动去询问数据的结果异步:被动通知数据的结果。同步一般指主动请求并等待I/O操作完毕的方式,当数据就绪后在读写的时候必须阻塞,异步则指主动请求数据后便可以继续处理其它任务,随后等待...
2019-12-30 17:11:37 110
原创 qt——信号槽连接方式
前言 Qt::ConnectionType,信号槽连接方式,我们今天来研究下它Qt::AutoConnection 默认连接方式。如果执行槽函数的对象和信号发出的对象在同一个线程,则为直连接;否则就是队列连接Qt::DirectConnection 直连接。所谓直连接就是说当信号发出后槽会被立即调用(难道还有不会即刻调用的?有,队列),当然了,信号和槽要在同一个线程中...
2019-12-30 16:21:06 856
原创 C++面试汇总
前言:总结一些常见的面试和笔试题,温故知新。直接点击下方链接,可以看具体文章信号槽连接方式同步、异步、阻塞和非阻塞c++基础智能指针const_cast、static_case、dynamic_cast和reinterpret_cast详解定位new(placement new)乐观锁和悲观锁...
2019-12-27 10:57:55 84
原创 qml应用——截屏(二)
导读 上一篇我们简单的讲述了如何对指定的Item进行截屏操作,现在我们升级下程序,实现选中截图,先看效果 操作截图 实际效果 我们通过鼠标滑动选中了一个区域,释放鼠标左键后完成矩形绘制。本文在上一篇的基础之上实现选中区域的截图,所以实际效果图还是对指定的item截图,只不过是灵活了写。构思如下:创建一个frameless、可拖动的窗...
2019-12-26 21:42:25 1198 1
原创 C++ createEvent和WaitForSingleObject配合使用详解
前言 线程同步技术之一:Event,事件作为多线程同步的重要方式之一,学习它的使用是多线程编程必不可少的步骤,我们通过几个函数来分例剖析下该线程同步方法正文 事件的创建通过createEvent函数实现,下面是函数的介绍:The CreateEvent function creates a named or an unnamed event object. ...
2019-12-26 16:16:56 1914 3
原创 qml应用——截屏(一)
背景qt实现截屏时有的是用c++和qtquick交互,有的是qt方法。本文使用纯qml截屏,最终实现一个功能丰富的截屏,可单独抽离出做一个工具用。第一阶段:对指定控件截图最终结果:完整代码:import QtQuick 2.7import QtQuick.Controls 2.0Rectangle { id: legendView...
2019-12-25 11:43:32 1935 1
openssl下的pc和android库.rar
2020-02-04
人脸识别库+qt5.8+opencv3.2
2018-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人