自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (8)
  • 收藏
  • 关注

原创 深拷贝 赋值

// 实现克隆Clone // let obj = new window[this._type]; // let obj = DObject.deepCopy(this); // let obj = this.constructor(); let obj = Class.createObject(this._type...

2019-05-16 11:06:23 1306

原创 C++ 与 JS 移植

1.C++的int,float,string 可以被引用,而js 的不行; 如果用到函数中的引用参数,js只能把引用的基本类型返回,再赋值;2. js的 switch 可以case 字符串,而C++ 不行;3. C++ 如果一个成员属性是数组(或Map)等,那会自动构造初始化数组; js中,数组需要手动创建4. C++的值(非指针或引用),= 等...

2019-05-10 15:16:33 1719

原创 js for循环中的回调同步问题

回调函数在for循环中,回调的顺序就会不确定,不按顺序。以下方法能使其同步执行:一、使用 async 和 awaitconst delay = ms => new Promise(resolve => setTimeout(resolve, ms));(async function loop() { for (let i = 0; i < 10; i++) {...

2019-03-27 15:10:32 10698 1

转载 JS 深拷贝与浅拷贝

一、数据类型数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。基本数据类型的特点:直接存储在栈(stack)中的数据 引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地...

2018-12-24 15:16:53 1230

转载 深入理解js立即执行函数

看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。1.什么是立即执行函数(IIFE)在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图:接下来看立即执行函数的两种常见形式:...

2018-12-24 11:40:50 4199 5

原创 js基础类型的扩展 string 和 String

扩展基础类型的函数interface String { toBool: () =&gt; boolean;}String.prototype.toBool = function (): boolean { return this.valueOf() === '1' || this.valueOf().toUpperCase() === 'TRUE' || false;}...

2018-12-20 15:04:21 1136

转载 分析 JavaScript 的数据类型与变量

原文链接:https://segmentfault.com/a/1190000017016407这篇文章,来聊聊 JS 中的数据类型与变量。这是在学习 JS 时最基础的一类问题,但却很重要。希望我的分享有帮助到你。文章开头,我先提几个面试中遇到的问题:比如:如何理解参数的按值传递?什么是暂时性死区?什么是变量提升?全局变量和 window 的属性有什么区别?为什么?....

2018-12-19 14:05:10 835

原创 理解js中的值传递

// javascript 代码function setName(obj) { // 这里 obj 和 person 指向内存中的同一块地址,a 地址 obj.name = &amp;quot;Nicholas&amp;quot;; // 这里 obj 指向了新对象所在的地址( b 地址),切断了和 a 地址的联系 obj = new Object(); obj.name = &amp;quot;Greg&amp;quot;...

2018-11-06 18:08:41 941

原创 js Tips

clone(flags: number) { let name = 'ClassName' + this._type; let obj = new window[name]; obj.assign(this, flags); return obj;}根据类型名字,新建对象

2018-10-22 18:07:07 1496

转载 ==和===到底有什么区别

很多时候我们会对某个语言的某个特性争论不休,通常都只是因为我们不知道它是怎么实现的。其实解决这个疑惑的最好的方法,就是弄清楚 == 和 === 内部的实现机制。例如 Google v8 就是开源的,只要看看里面的代码,就能知道到底是怎么一回事了。但是我相信绝大多数人都是没有这个耐心的——我知道大家都在忙着挣钱养家——好吧,那咱就不看 Google v8 了,看看 ECMA-262 吧,里面已经把...

2018-10-11 10:06:56 2148 1

转载 js中怎么理解按位取反

转自 https://segmentfault.com/q/1010000005697515~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算。如 ~1 = -2; ~2 = -3;按位取反大体流程是这样的:就来看看~1的计算步骤:将1(这里叫:原码)转二进制 = 00000001 按位...

2018-10-10 17:41:15 3094

原创 TS 优化

当一个函数内反复出现全局函数时,应考虑声明临时变量来替代,比如Math.max,我们可以在函数开始处声明let qMax = Math.max; 在后续代码中使用qMax而不是Math.max         因:全局函数的访问速度要远低于临时变量;         TS代码压缩时,全局函数不能被压缩但临时变量可以,qMax可以被压缩成一个字母,1 vs X, 优势明显 ...

2018-10-08 18:43:55 1611

转载 指针 + 1

指针 + 1 并不是指针代表的地址值 + 1. 指针变量加1,即向后移动1 个位置表示指针变量指向下一个数据元素的首地址。而不是在原地址基础上加1。至于真实的地址加了多少,要看原来指针指向的数据类型是什么。char a = 'a';char *p = &amp;a;cout&lt;&lt;(void*)p&lt;&lt;" "&lt;&lt;(void*)(p+1)&lt;&lt;endl;...

2018-06-28 14:12:07 10234

转载 SVN怎么checkout(校验)文件下载SVN上文件到本地

要下载SVN上文件到本地,那么我们先在本地计算机上建立个文件夹来存放SVN下载的文件。建好文件夹后,进入该文件夹。如下图所示。进入文件夹后,在空白处点击鼠标右键,然后选择弹出菜单里的【SVN checkout】选项,如下图所示。在弹出的checkout对话框里,我们填入SVN的服务器地址,在填写我们保存SVN下载文件的位置,也就是刚才新建的文件夹,然后点击【OK】,如下图所示。填写好SVN的che...

2018-06-08 14:49:42 17571

转载 Qt测算程序运行时间

【问题描述】程序运行时间是编程的一项重要指标,在QT中如何测算程序的运行时间呢?【解析】测试函数[html] view plain copy#include &lt;math.h&gt;    void function()  {      unsigned int i,j;      double y;        for(i=0;i&lt;1000;i++)          for(j=0...

2018-06-05 18:11:23 1345

转载 如何定一个只能在堆上或者只能在栈上定义的类

C++中,对象的建立分为两种,一种是静态建立,如A a;另一种是动态建立,如 A *ptr=new A;静态建立:由编译器为对象在栈上分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象,使用这种方法,直接调用类的构造函数动态建立:是通过new运算符将对象建立在堆空间中,这个过程分为两步,第一步是执行operator new()函数,在堆空间中搜索合适的...

2018-06-04 17:40:13 1142

转载 Qt JSON

Qt JSON 常用类QJsonDocumentQJsonDocument 类用于读和写 JSON 文档。一个 JSON 文档可以使用 QJsonDocument::fromJson() 从基于文本的表示转化为 QJsonDocument, toJson() 则可以反向转化为文本。解析器非常快且高效,并将 JSON 转换为 Qt 使用的二进制表示。已解析文档的有效性,可以使用 !isNull() ...

2018-06-01 10:22:17 1292

转载 QT 获取MD5值

QT中,提供了QCryptographicHash类,很方便的实现的字符串到md5/md4/sha1的转换,可以通过两种方法实现:[cpp] view plain copyQString pwd="123456";  QString md5;  QByteArray ba,bb;  QCryptographicHash md(QCryptographicHash::Md5);  ba.append...

2018-05-29 15:55:31 15402

原创 图片更改格式

QFileInfo file(imgPath); if (!file.isFile()) return; if (file.suffix() != "png") { QString pngPath = file.absolutePath() + "/" + file.baseName() + ".png"; //QFile::copy(...

2018-04-23 14:04:32 1258

转载 深入解析C++中类的多重继承

C++类的多继承在前面的例子中,派生类都只有一个基类,称为单继承。除此之外,C++也支持多继承,即一个派生类可以有两个或多个基类。多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的 Java、C#、PHP 等干脆取消了多继承。想快速学习C++的读者可以不必细读。多继承的语法也很简单,将多个基类用逗号隔开即可。例如已声明了类A、类B和类C,那么可以这样来声明派生类D:?1...

2018-04-07 15:34:35 2631

转载 sizeof与strlen的区别

char str[20]="0123456789"; int   a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int   b=sizeof(str); /*b=20;sizeof 计算的则是分配的数组str[20] 所占的内存空间的大小,不受里面存储的内容影响========================================...

2018-04-07 15:10:00 300

转载 Qt 判断文件、文件夹是否存在的方法

一直对Qt的isFile、isDir、exists这几个方法感到混乱,不知道到底用哪个,网上搜了下资料,也是用这几个方法但是都没有对其深究,经过测试发现会存在问题,先看看下面的测试代码[cpp] view plain copy{      QFileInfo fi("C:/123");                     // 目录存在      qDebug() &lt;&lt; fi.is...

2018-03-17 17:21:42 6244

转载 SVG 研究之 text 文字

「文字」雖然字面上的解釋很簡單,但深入研究之後,發現 SVG 對於文字的設定,比我想像的複雜得多,但也因為有了這些我所不知道的設定和屬性,讓原本單純樸實的文字,更添加了幾分華麗的色彩和變化,這篇將介紹文字基本的屬性設定,以及一些進階的文字用法,學完之後,也就更能使用程式來控制文字,製作出與眾不同的動畫和特效了。基本用法文字的基本用法很簡單,就是使用&lt;text&gt;&lt;/text&gt;...

2018-03-17 14:25:34 3811

转载 Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法

经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。算是个备忘录吧。程序所在路径获取程序所在路径,QCoreApplication 类里就实现了相关的功能:QString QCoreApplication::appl...

2018-03-15 11:04:13 821

转载 Qt App自动重启及关闭子窗口

一、简介      最近因项目需求,Qt程序一旦检测到错误,要重新启动,自己是每次关闭主窗口的所有子窗口但有些模态框会出现问题,因此从网上总结了一些知识点,以备以后的应用。二、详解1、Qt结构[cpp] view plain copyint main(int argc, char *argv[])  {      QApplication a(argc, argv);      MyWidget ...

2018-03-14 14:26:52 845

转载 QT .pro文件 LIBS用法详解

在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的。 下面是官方文档对于LIBS变量的使用说明:这段话对于LIBS的使用说的很清楚了,就是-L指定库的目录,而-l指定库的名字(如果是在Linux下,则去掉lib和后缀名,windows下去掉后缀名即可),静态...

2018-03-13 18:50:47 13309 5

转载 Qt 小总结

1、获取屏幕的工作区的大小[cpp] view plain copy{      //获取屏幕分辨率      qDebug()&lt;&lt; "screen width:"&lt;&lt;QApplication::desktop()-&gt;width();      qDebug()&lt;&lt; "screen height:"&lt;&lt;QApplication::desktop

2018-03-13 15:48:14 816

转载 Qt::ConnectionType解析:Qt信号槽连接方式

signal/slot在底层会使用三种方式传递消息。参见QObject::connect()方法:bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoC...

2018-03-12 15:24:32 1279

原创 QPixmap 对象比较

有一个需求:重复图片,文件只保存一次。所以要比较图片内部数据 QPixmap 是不是一样(没有保存图片路径,故不能对比路径来判断)。但QPixmap 没有重载相等“==”运算符,最后把 QPixmap 转为QImage 对比像素,来对比是不是同一图片。--------------------------------------------------------------------------...

2018-03-09 11:50:37 2170

转载 QGraphicsView框架事件处理

一、简介       GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力。图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项。       对于键盘鼠标事件,scene会传递给获得焦点的图形项。如果场景没有获得焦点,那键盘事件会丢弃;如果调用场景setFocus()或者场景中的一个图形项获得了焦点,那么场景会自动获...

2018-03-07 13:20:33 3780

转载 Qt中定时器使用的两种方法

        Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类。         其精确度一般依赖于操作系统和硬件,但一般支持20ms。下面将分别介绍两种方法来使用定时器。方法一:QObject中的定时器的使用,需要用到三个函数1、   int QObject::startTimer ( int interval ) ;        这个是开...

2018-03-06 18:17:26 1568

转载 图像的宽度和 pitch

1、单位不同,width是像素,pitch是字节。 因此一个640*480的8位图和640*480的32位图,他们width一样,而pitch不一样。 2、pitch可能大于width个像素所占字节数。 width就是图像实际显示的宽度;而pitch是存储一行图像所占的字节(相邻两行起点指针的差值),多部分情况下为了高效处理,会将每行图像都对齐存储,这样pitch就包括了对齐使用的填充字...

2018-01-30 11:25:14 6206 1

转载 Qt 使用第三方库

简述在 Qt 中经常会用到第三方库,例如:FFmpeg、OpenCV 等。第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧!简述第三方库源代码库文件目标目录第三方库假设你需要依赖一个跨平台的库 - MyLibrary,并且有几个文件作为库的一部分。我们的项目 MyQtApp 将这些文件存储在名为 3rdparty

2018-01-25 18:24:04 4624

原创 QGraphicsView 的使用(滚轮缩放)

1. 继承QGraphicsView;class MyGraphicsView : public QGraphicsView2. 重写构造函数MyGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);3.设置 scene 尺寸scene-&gt;setSceneRect(0, 0, 1280, 720);4. 重写paintEvent 函...

2018-01-18 14:50:08 15328 4

转载 数组指针强制转换成结构体指针

这样转换编译器其实什么也不做。只是从语法上来说类型改变而已,用新的类型的方式来解释原来内存中的值。// --------------------------------------------------这样做是让结构体按照自己的属性重新读取数组中的数据。字节对齐如果结构体中所有属性所占字节和数组的类型所占字节一样(如果数组类型是16位的,属性也是1

2017-12-27 15:20:25 1997

转载 Qt .pro文件详解

1. TEMPLATE变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件。Qmake工具定义了5种模板:1. 应用程序App,为建立一个Qt应用程序创建Makefile文件;2. 库lib,为建立引用程序库而创建Makefile文件;3. 子工程 subdirs,为建立子目录下的目标文件创建一个Makefile文件,子目录通过变量SUBDIRS指定(子目录...

2017-12-19 11:35:03 340

转载 shared_ptr的使用和陷阱

shared_ptr的使用分配内存make_shared//make_shared分配一块int类型大小的内存,并值初始化为100//返回值是shared_ptr类型,因此可以直接赋值给spshared_ptrint> sp = make_sharedint>(100);123new接受指针参数的只能指针构造函数是explicit的,因此

2017-12-12 18:48:15 30399

转载 C++中的强制类型转换

C++中有五种强制类型转换static_castconst_castreinterpret_castdynamic_cast旧式(C风格)强制类型装换static_cast只要不包含底层const,都可以使用/* static_cast(exp) 将exp的结果转化为type类型*/double d = 10;void *vp = &d;do

2017-12-12 18:21:49 346

转载 动态内存与智能指针

转自:http://m.blog.csdn.net/River_Lethe/article/details/78733914程序中内存分配有以下五种:栈区 存放局部变量、函数参数等,由编译器自动分配,变量离开作用域后自动收回内存,可分配的内存空间较小。void func(int _a);int main(){ int a = 5; //局部变

2017-12-12 18:03:50 326

转载 unique_ptr的使用和陷阱

unique_ptr的使用分配内存与shared_ptr不同,unique_ptr没有定义类似make_shared的操作,因此只可以使用new来分配内存,并且由于unique_ptr不可拷贝和赋值,初始化unique_ptr必须使用直接初始化的方式。unique_ptrint> up1(new int()); //okay,直接初始化unique_ptrint>

2017-12-12 17:42:35 74416 12

PDF_reference_语法_中文版.PDF

本章涵盖 了PDF 对象文件及文件级对象文件的所有语法。中文版本,为第一章语法部分,包含了PDF所有语法,对于解析PDF格式有很大帮助。

2017-03-02

WTL 自定义标题栏

自定义标题栏,自定义按钮(实现按钮三种状态),适合初学者。另外还有标题栏拖拽移动窗口,窗口边缘拖拽拉伸等功能。

2016-06-07

Qt右下角弹出框源码 系统托盘并带右键菜单

Qt右下角弹出框源码,显示系统托盘,托盘带有右键菜单; 包含三个定时器,弹出计时显示动画,停留时间,淡出计时

2016-05-20

WTL Help 函数查找 手册

WTL Help.chm函数查找手册,几乎涵盖了所有WTL函数,不过是英文

2016-05-20

QT C++ 笔试题目 京东

京东的QT/C++ 笔试题目,一共6页,用手机拍摄的,希望对你们有帮助

2016-05-20

WTL 中文教程chm版

1、WTL经典学习、自学指南,chm电子书; 2、包里含有指南里的所有实例源码; 3. 包含一些外文学习网站和外文资源

2016-05-20

MFC程序员的WTL指南(第二版).chm

MFC程序员的WTL指南(第二版).chm,WTL教程指南

2016-05-04

QT 自定义无边框窗体,支持边缘拖拽缩放

QT 自定义无边框窗体,支持边缘拖拽缩放。搬运自http://www.cnblogs.com/xufeiyang/p/3313104.html,稍改了些代码,供参考

2016-04-20

空空如也

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

TA关注的人

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