- 博客(49)
- 资源 (4)
- 收藏
- 关注
原创 C++之虚函数表
虚函数表是一个存在指向虚函数的指针数组,每一个带有虚函数的类都有一个虚函数表。虚函数表与虚函数一样是可以继承。这个表的每一个数组的值都是指向虚函数的指针。
2024-03-11 18:04:39
437
原创 opencv之读写图像(imread)
Cv::IMREAD_UNCHANGED 于将Cv::IMREAD_ANYCOLOR和CV::IMREAD_ANYDEPTH组合了起。Cv::IMREAD_COLOR 总是读取三通道图像。Cv::IMREAD_ANYDEPTH 允许加载超过8bit深度。第三个参数被用作特殊类型文件的写入操作时所需的数据。输入参数为内部为整型数据的一个。中的整型序列的具体内容为:一系列的参数。之后跟着其对应的值,默认为空数组。第一个参数为图片的名称。
2024-03-01 16:48:44
798
原创 C++之单例模式
确保一个类只有一个实体对象,必须是自行创建的实例。并且能向整个系统提供实例。转换成实现的方法就是,(1)构造函数私有,避免了外部实例化。(2)该类包含一个自己的静态对象。(3)提供一个静态的公有函数供外部使用。
2024-03-01 14:32:41
1013
原创 C++之std::list
概念说明:List是由双链表实现的一个容器,每个节点存储一个元素,支持前后两种移动方向。List的内存随着添加的节点增加而增加。数据在内存上存储是不连续的。
2024-02-29 16:48:37
1388
原创 QT之QSharedMemory共享内存
该函数根据共享内存的Key值来创建一个size大小的共享内存段,可以根据mode设为ReadWrite。当对共享内存操作完成后,需要释放共享内存段上的锁。该函数将会依据共享内存对象的Key值,来将共享内存对象与实际的共享内存逻辑地址相链接,这。如果这是链接到共享内存段的最后一个进程,那么这个共享内存段将被。它进程也对该内存进行改动从而操作数据不同步的情况,需要将内存进行锁定,也就是lock。为共享内存设置键值。如何当前的内存共享对象已经链接到底层的共享内存段(系统释放,也就是说,共享内存中的内容将被销毁。
2024-02-28 16:12:21
1594
原创 C++之std::vector
resize(size_type count): 更改 vector 的大小,使其包含 count 个元素。的元数据存储在栈区,而实际的元素数组存储在堆区,并且数组的大小是根据需要动态改变的。使用场景:适用于元素结构简单,变化小,并且频繁随机访问但不需要对头部和中间元素进行添加删除操作的场景。//5个元素的数组,且初始化值为1。//在itr的位置插入两个99。//在itr的位置插入元素88。缺点:在头部和中间插入删除元素需要移动内存,效率低;//查找特定的迭代器。
2024-02-28 14:08:12
900
原创 C++之std::async
会阻塞当前调用线程,直到异步执行结束并获得结果,如果异步执行已经结束,直接获得结果;cout<<"调用结果:"<<result.get() <<endl;结果验证了不调用get函数是不会执行异步函数的,也就是不会阻塞到调用的线程。cout << "主函数启动线程结束" << endl;cout << "主函数启动线程结束" << endl;cout << "主函数启动线程结束" << endl;cout << "主函数启动线程结束" << endl;函数时,同步调用的函数才真正执行,否则不执行。
2024-02-23 14:53:50
898
原创 C++之std::thread线程
/ thFun为线程需要调用的函数,10为thFun函数的参数。,创建新线程的作用域结束后,有可能线程仍然在执行,这时局部变量随着作用域的完成都已销毁,如果线程继续使用局部变量的。std::thread是C++11线程库提供的线程创建。参数绑定的是线程需要调用的函数与参数。使用detach分离调用的时候一定注意参数,因为存在作用域问题,不要使用当前作用域的数据传参。//会阻塞当前代码,等待线程完成退出后,才会继续向下执行;注意:一定在线程销毁前调用线程的调用方式。
2024-02-21 13:56:55
423
原创 Qt与HTML/JavaScript网页端通信和调用
Qt与HTML/JavaScript网页端通信和调用qt与网页的交互主要是借助js。简单的说就是在注册一个qt中的类给js段调用,,qt通过接口调用js端的函数。这里需要用到一个qt自带的qwebchannel.js文件,还需要html文件和通信需要调用的js文件,qt源码,具体情况代码上有。---------------------mainwindow.h#ifndef MAI...
2019-09-19 16:28:04
4426
19
原创 shiboken封装qt供python使用
上一篇写了封装C++给python使用。这篇是封装qt给python使用,突然不知道怎么描述了,就简单的说一下思路上代码。可参考上一个。同样是分为三部分,封装一个dll库,不管你用什么vs,qt,或者cmake,什么都好,只要生成能用的库就行.这部分注意包含qt所需要的文件夹和库。第二部分也就是根据利用shiboken生成器生成pythonc++文件。具体参数参看自己需求,但是编译不过的话多注...
2019-06-26 15:56:19
2106
3
原创 shiboken绑定C++供python使用
C++类函数封装给python调用,大致分为三个部分,第一部分是把我们的C++类函数等封装成一个dll,即动态库。第二部分是生成一个绑定代码,就是用shiboken2根据我们需要封装暴露的文件,生成pythonC++代码。然后第三部分,就是根据第一和第二部分生成的库和代码,进一步封装成py库。然后python文件直接可以调用该库。具体代码如下,源码用的是python的官方源码。主要讲解每个部分的使...
2019-06-26 15:14:39
2170
原创 VS2008重置默认配置
在开始菜单打开:(其他地方打开命令提示一样)Microsoft Visual Studio 2008 --> Visual Studio Tools --> Visual Studio 2008命令提示在窗口中输入:devenv/resetuserdata运行完成后重新打开VS2008就可以重新设置默认环境...
2018-04-26 20:22:26
1227
原创 C/C++笔试题
很多公司面试的题目都是一些比较常见和实用的题目,但是往往我们由于面试时间等等原因回答的不够全面和不够满意,所以我们在看面试题的时候要当成知识点来学习,而不是记住用来面试,下面分享总结一下一些常见的面试题目,希望对大家有帮助。一、const的作用定义:const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。内存:C语言存储在堆栈和静态存储区(全局变量),C++可能存在符号表中,...
2018-03-29 16:38:32
1443
原创 static详解
定义:static修饰为静态,可以修饰变量,函数。。内存:静态存储区读写属性:可读可写意义:静态,重在静也是禁止,限制的意思,禁止被外部使用,禁止每次都初始化。主要作用:1、修饰全局变量:静态全局变量1)静态全局变量不能被其它文件所用;其它文件中可以定义相同名字的变量,不会发生冲突;2)和全局变量的区别: 全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工...
2018-03-27 17:44:11
327
原创 const详解
定义:const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。内存:C语言存储在堆栈和静态存储区(全局变量),C++可能存在符号表中,视情况而定。读写属性:只读主要作用:1)可以定义const常量,具有不可变性。2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已...
2018-03-27 17:41:30
444
原创 WINCE CPU内存的占用率计算
在进程的性能数据采集过程中,经常用到的一个性能指标就是进程的cpu占用率,下面给出它的计算方法及示例代码。1、CPU占用率的定义CPU占用率:指进程在一个时间段内消耗的CPU时间与该时间段长度的比值。 2、CPU占用率计算方法根据上述定义,可以得到进程CPU占用率计算公式如下:进程消耗的CPU时间 = 进程消耗的内核态时间 + 进程消耗的用户态时间,即 costTime =
2017-11-07 17:21:14
1070
转载 CreateToolhelp32Snapshot枚举进程
CreateToolhelp32Snapshot枚举进程要实现功能描述 :在进程中关闭某一应用程序。(常用于 :系统监控类软件)处理思路分为两步:借助系统快照实现对系统当前进程的枚举和根据枚举结果对进程进行管理。/************************************************************************进程的枚举
2017-11-07 14:44:19
853
转载 wince系统报错异常总结
Exception 'Raised Exception' (-1): 数组越界Exception 'Data Abort' (4): 栈出问题了/空指针/访问的数据块无效了(如内存已经回收无效了)Exception 'Prefetch Abort' (3): 空指针
2017-11-01 17:25:15
809
原创 git保存用户名和密码
我们使用git的时候经常会遇到需要输入用户名和密码的操作。让人感觉到有点不舒服,不爽的感觉。这时候我们就可以设置保存我们使用git时候要用的用户名和密码。第一步:设置一个名字叫做HOME的环境变量。变量的值是一个路径,你需要保存用户名和密码的文件路径。(点击,计算机的属性->高级系统设置->环境变量->新建->确定)第二步:创建一个文件名叫做_netrc的文件用来保
2017-10-24 17:12:57
619
转载 QThread详解
一、线程管理1、线程启动void start(Priority priority = InheritPriority)调用后会执行run()函数,但在run()函数执行前会发射信号started(),操作系统将根据优先级参数调度线程。如果线程已经在运行,那么这个函数什么也不做。优先级参数的效果取决于操作系统的调度策略。特别是那些不支持线程优先级的系统优先级将会被忽略
2017-09-28 17:20:52
450
原创 Qt自动添加资源文件
QML资源的添加,在做项目的时候我们添加一个文件,经常会忘记添加进资源编译,导致调试部署时候会出现找不到文件报错。特别是有分桌面版和机器版的工程,在桌面版明明调试好好的界面,部署进机器就是报错(我刚来公司的时候犯过这样的错)。之后我们就制作了一个脚本,自动帮我们添加资源。脚本使用的语言是perl语言,目前我不大懂这个语言,在这里记录只为了保留和希望能帮助到需要帮助的你。//
2017-09-21 15:11:36
923
原创 QML语言国际化
Qt,QML翻译,语言国际化,大概的操作过程与代码的编写,就是书写需要翻译的字符串加上翻译标识,通过配置工程文件生成需要的ts文件,修改ts文件,发布生成需要的qm文件,然后在CPP 上加载设置需要的翻译文件。具体下面说明一,在工程文件上添加TRANSLATIONS += \internationalization/os_language_English.ts \ inter
2017-08-25 20:38:43
3123
转载 Q_PROPERTY宏
QT提供了一个成熟的属性系统,但是作为一个跨平台的且与编译器无关的库,qt不依赖于非标准的编译器功能例如 __property or [property];QT的强大之处在于它可以支持任何标准的c++编译器。 QT是基于 Meta-Object System(元对象)和signals and slots(信号槽)的.Q_PROPERTYQ_PROPERTY()是一个宏,用来在一个类
2017-08-25 19:48:42
451
原创 C/C++堆栈
在理解堆栈之前,我们先清楚程序的内存分配。一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(
2017-08-19 17:48:19
492
原创 C语言模拟学生管理系统链表学习
C语言的链表学习,以前刚学习C语言的时候是写的。里面存在的很多不足,放这里做个记录。能对刚学习的道友有帮助就更好,老道友们欢迎指出错误。#include#includestruct stu{unsigned int xh;unsigned char name[10];unsigned char ywcj;unsigned char sxcj;unsigned
2017-07-31 22:07:09
926
原创 QML之TextEdit
QML中的元素TextEdit文本编辑器支持多行编辑。编辑多行时候想要换行的时候使用确定按键Enter进行换行,还可以设置属性wrapMode设置自动换行模式。其他的编辑设置属性我们下面代码讨论。Rectangle{ anchors.centerIn: parent height: 200 width: 500 radius:
2017-07-25 10:06:33
5244
转载 Qlist
QList是一种表示链表的模板类。QList是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedList和QVector提供的操作极其相似:* 对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API
2017-07-24 17:01:16
661
转载 Git常用命令大全
Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。Git常用操作命令:1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add
2017-07-22 15:59:10
365
原创 QML之TextInput
TextInput是QML中一个可编辑输入行元素,只能编辑显示一行,拥有较多的属性,可支持复制黏贴等操作,下面用代码介绍一般使用到的属性再加以说明。 Rectangle{ anchors.centerIn: parent height: 200 width: 500 radius: 5 color: "gray" Comp
2017-07-15 15:26:16
11117
1
转载 Q_OBJECT宏
Q_OBJECT宏的作用 The Q_OBJECT macro at the beginning of the class definition is necessary for all classes that define signals or slots只有加入了Q_OBJECT,你才能使用QT中的signal和slot机制。所有QObject的派生类在官方文档中
2017-07-07 16:25:52
860
转载 C的八大排序法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,
2017-06-14 17:02:47
405
原创 QML之ListView列表视图
Rectangle{ x:20 y:20 height: 50 width: 50 radius: 5 color: mous.pressed ? "red" :"gray" Text { anchors.centerIn: parent
2017-06-13 17:04:56
8153
2
原创 QML之anchors锚布局
QML的布局方式一般采用两种,一种就是直接设置,X与Y坐标的值。一种是采用相对位置布局,anchors锚布局。使用锚布局的能够使界面更紧凑,更有整体化。我个人相对比较喜欢使用锚布局,选取一个最合适的参考点,其他点对它采用锚布局。anchors.baseline : AnchorLineanchors.baselineOffset : realanchors.bottom : A
2017-06-09 15:37:26
15243
原创 QML之Flow流式布局
QML的定位器Flow是一个流式布局,可以说是一个另类的Grid布局,有点相似,Flow布局方式不需要设置属性行与列,只要设置是先布局行还是列,它就会根据子项和布局空间的大小先布局好一行或者时列。Rectangle{ anchors.centerIn: parent height: 200 width: 300 col
2017-06-09 11:56:22
2439
转载 QML元素的介绍
1. 介绍QML是一种描述语言,主要是对界面效果等的一种描述,它可以结合javaScript来进行更复杂的效果及逻辑实现。比如做个游戏,实现一些更有趣的功能等 2. 简单的例子import Qt 4.7Rectangle {width: 200height: 200color: "blue"}代码是绘制一个蓝色的矩形,
2017-06-09 10:42:13
1801
原创 QML之MouseArea事件
QML的鼠标事件是通过不可见元素MouseArea来实现,常用的事件有点击,双击,长按等。常用的设置有鼠标作用域设置,鼠标按键设置等。下面代码详细说明Rectangle{ id:rec_test height: 300 width: 300 radius: 5 color: "gray"
2017-06-08 20:17:50
7525
原创 QML之Repeater重复器
Repeater重复器顾名思义就是重复摆放同一个子项。对于一些共同点很多的子项使用重复器可以让代码看起来更加简洁Row{ spacing: 20 y:100 x:100 Repeater{ id:rep model :5 //为重复器提供的数据模型,类型是any
2017-06-07 17:22:31
7383
原创 QML之Grid网格定位器
Grid是QML的一个网格定位器,自动排列定位它的子项,当然,我们需要对她的属性进行设置。 Grid{ //网格定位器 rows : 2 //设置网格的行数, columns: 5 //设置网格列数 //如果不进行行列数设置,会根据子项的多少自动设置,(我记得是行列数最相近原则) spacing: 10 //子项之间的
2017-06-07 16:21:25
4246
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人