自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 QAxObject写Excel(详解)

QAxObject写Excel相关函数使用说明,较为完整的代码示例。实战方面的注意事项以及一些常见问题的解决方案

2022-12-01 11:01:59 4719 3

原创 QT信号槽的使用

QT信号槽的基础使用方式,5种连接方式的区别,使用时的注意事项

2022-11-30 22:04:36 481

原创 C/C++函数调用规约

函数调用约定是指对函数调用的约束和规范,主要包含(1)函数参数压栈的顺序;(2)参数出栈由调用者还是被调用者负责;(3)函数名字修饰的方式;本文主要分析__cdecl、__stdcall、__fastcall、__thiscall四种约定的特点及其使用场景。并基于VS2022列举相关修饰名映射,总结函数名字修饰规则

2022-11-30 21:48:02 894

原创 QCefView实现与JS的交互

Cef主动向JS通信主要有一种方法:首先在Cef中QCefEvent event ( const QString& eventName ); //定义一个CEF事件event.setStringProperty ( const QString& key, const QString& msg ); //为事件添加参数boardcastEvent ( const QString& signalName, QCefEvent& event )...

2021-05-22 10:30:07 823

原创 QCefView嵌入页面优化问题(3)——嵌入式的页面无渲染效果

当页面嵌入到Qt窗口时,看不到网页的效果,当移动鼠标到对应位置时有光标变化,与JS的交互效果也存在,就是没有渲染这个问题可能是因为其父窗口同时设置了两个属性setWindowFlags(windowFlags() | Qt::FramelessWindowHint); // 取消标题栏 setAttribute(Qt::WA_TranslucentBackground); // 背景透明可以在对应的父窗口设置setAttribute...

2021-05-22 09:53:05 976

原创 QCefView嵌入页面优化问题(2)——关闭页面导致的主窗口关闭

当将一个QCefView嵌入到客户端中时,关闭cef页面其主窗口也会关闭,为了解决这个问题,需要修改QCefViewBrowserHandler中的CloseAllBrowsers函数void QCefViewBrowserHandler::CloseAllBrowsers(bool force_close){ if (!CefCurrentlyOn(TID_UI)) { // Execute on the UI thread. CefPostTask(TID_UI, CefCre

2021-05-22 09:31:19 707

原创 QCefView嵌入页面优化问题(1)——实现刷新和DevTool功能

QCefView嵌入页面优化问题(1)——实现刷新和DevTool功能最近在重构客户端,需要通过嵌入式页面来获取管理页面,通过比对多个库,最终选用了Qt+QCefView实现,其中遇到了挺多问题,这里进行一个简单的分享。QCefView的嵌入式页面的按键响应功能(这里以F5刷新和F12打开DevTool),是在QCefViewBrowserHandler中通过继承CefKeyboardHandler,重写OnPreKeyEvent实现。bool QCefViewBrowserHandler::

2021-05-22 09:15:09 1148

原创 初识设计模式

何为面向对象?在谈及设计模式之前,我们先谈谈面向对象,在面向对象之前先出现的是面向过程的编程,其中具有代表性的是C语言。面向过程更加注重逻辑过程,根据输入进行运算处理并输出。通过阅读程序可以较清晰的看出代码执行的操作和解决问题的过程,在一定程度上可以说面向过程编程只要代码无错就是优。但是随着社会对计算机软件的需求日益增长,经常会出现一个个新的需求,即现有的系统需要增加新的功能,而有些功能中依赖的算法在其它现有功能中也有运用到,这就可能会导致代码冗余,此外一个函数接口可能被赋予了多种职责(作用),在调用和

2020-09-19 14:11:35 206

原创 浅谈设计模式:工厂模式

工厂模式(Factory Pattern)在一个工厂中,不同的产品由管理者发配给不同的车间进行生产,当有新的产品需要生产时,则建立一个新的车间,减少不同车间之间的联系。工厂模式就是模拟这样一个工厂生产方式,定义一个工厂类,通过工厂类创建不同子类对象,从紧耦合变为松耦合。工厂模式主要分为三种:简单工厂模式 工厂方法模式 抽象工厂模式1. 简单工厂模式(Single Factory Pattern)工厂模式是GOF23中的创建型模式,简单工厂模式并不属于23中设计模式中的一种,而是工厂方法

2020-09-18 18:04:17 194

原创 浅谈设计模式:单例模式

单例模式(Singleton)单例模式顾名思义就是类只有一个实例的模式。当在实际场景中只能存在一个唯一对象时,我们无法保证用户只创建了一个实例对象,尤其是在对系统功能的版本迭代过程中,不同的开发人员可能会创建多个实例对象,这与系统的逻辑可能是不符的。因此需要由类限制实例对象创建的行为。单例模式正是这样一种设计模式,在GOF中其定义如下:保证类仅有一个实例,并提供一个访问它的全局访问点。那么问题来了,如何在类内限制实例对象的创建?主要在于两点:(1)构造函数以及类成员对象的访问权限;(2

2020-09-18 13:27:52 144

原创 面试之计算机网络(篇四:HTTP与HTTPS)

目录1. 简述HTTP协议2. HTTP是如何处理无状态问题3. Cookie与Session的区别4. HTTP短连接与长连接的区别5. HTTP1.0与HTTP1.1的区别6. HTTP1.1与HTTP2.0的区别7. HTTP状态码8. HTTP与HTTPS的区别9. HTTP请求常见方法10. GET与POST的区别11. 域名格式12. DNS的解析过程13. 打开一个网页数据的传输过程1. 简述HTTP协议(1)HTTP是超文本传输协议

2020-09-06 23:55:22 373

原创 面试之计算机网络(篇三:TCP三次握手及四次挥手)

目录1. TCP三次握手2. TCP四次挥手3. 为什么要进行三次握手,不能进行一次、二次或者四次握手4. 为什么握手是三次,挥手则是四次?5. 为什么要进入TIME-WAIT状态,且等待时间为2MSL6. 连接建立后,客户端出现了故障,服务端如何处理?1. TCP三次握手(1)图例如下:(2)具体过程:握手前客户端和服务端结束CLOSED状态,服务端进入LISTEN状态; 第一次握手:客户端发送“SYN = 1, seq = x”报文,进入SYN-SENT状.

2020-09-05 15:12:58 221

原创 面试之计算机网络(篇二:TCP可靠传输)

目录1. TCP如何实现可靠传输?2. TCP提供可靠传输的两种协议3. TCP如何确定超时重传的时间4. 超时重传后如何判定接收到的确认报文是对原先报文的确认,还是对重传报文的确认?5. 什么是滑动窗口?6. 固定窗口与滑动窗口的区别?7. 流量控制中带来的死锁以及解决方法8. 什么是拥塞控制9. TCP如何提高网络利用率1. TCP如何实现可靠传输?(1)检验和:TCP首部加入了检验和字段,用于检测数据在传输过程中是否被修改。将发送的数据包二进制数据相加取反,

2020-09-05 13:08:05 415

原创 面试之计算机网络(篇一:TCP与UDP)

1.TCP与UDP的区别

2020-09-05 10:05:52 146

原创 面试之C++(篇四:其他常见问题)

1.static的作用(1)限制了修饰对象的作用域为本程序文件。外部程序文件不能访问该对象,本文件中的静态或非静态函数都可以调用静态变量和函数。(2)使修饰的对象具备记忆功能和全局生存期,static定义的对象存储在静态存储区。(3)类中定义的静态成员直接用类作用域调用,即 A::func(),A::var。类的静态成员只能够调用该类的静态成员,不能调用非静态成员,这是因为类内非静态成员是通过指向类对象实例的this指针调用的,而静态成员没有this指针。(4)类内声明静态成员时,不占用内存

2020-09-02 00:44:33 229

原创 面试之C++(篇三:C++11)

1.为什么引入nullptr(1)在原先的C/C++中常用NULL来表示空,而在不同的编译器中NULL的定义是不同的,例如#define NULL 0,#define NULL (void*)0。有函数void func(int),void func(void*),在不同编译器下可能会调用不同的重载函数,或者出现语义错误。(2)在C++中禁止 void* 隐式转换成其他类型,因此在C++中NULL被定义为0。因此引入了nullptr用于区分NULL和0,nullptr可以隐式转换成任意指针,其类

2020-08-31 23:24:56 565

原创 面试之C++(篇二:STL)

1.STL六大组件(1)容器(Container)(2)适配器(Adapter)(3)迭代器(Iterator)(4)算法(Algorithm)(5)分配器(Allocator,又称空间配置器)(6)函数对象(Function Object,又称仿函数)2.常见容器类及其底层实现...

2020-08-31 14:41:01 371

原创 面试之C++(篇一:类)

C与C++的区别(1)C是面向过程的结构化编程语言,更加注重逻辑过程,根据输入进行运算并输出;C++是面向对象的语言,更加注重对象模型的构建,使得构建的模型契合问题域,通过定义模型方法来解决问题(2)...

2020-08-31 09:27:09 289

原创 OpenCV学习笔记(1):仿射getAffineTransform和warpAffine

由于工作原因,最近开始研究图像处理相关技术,开始接触OpenCV,主要是为了重构PACS系统中的平移、缩放和旋转三个图像操作的接口函数。opencv作为目前计算机视觉领域的热门开源库,有着稳定且功能强大的优点。下面是刚接触时的一些研究,主要是学习仿射,及一些相关的函数接口的使用,这里整理一下,方便以后查看,若有错误的地方还请谅解,随意评论纠正!看到很多代码示例都有cv::Mat的字眼,cv是o...

2019-12-26 20:26:41 1574

原创 DICOM之DCMTK开源库类

DICOM之DCMTK开源库类继承关系(基于C++)在刚接触DICOM时,由于是主学C++的,因此先上手的就是DCMTK的开源库,关于DCMTK中程序包的简介,这里推荐一篇文章【dcmtk程序包简介】https://blog.csdn.net/diqiucun666/article/details/2866908相当于是dcmtk的中文说明书,其中的英文可以用翻译工具翻译下面给出部分D...

2019-10-25 12:07:19 525

原创 DCMTK遍历DICOM文件Tag

DCMTK遍历DICOM文件数据最近在开发一个基于MFC对话框的DCM编辑器,最基础的功能是将DCM文件中的所有数据按列表的形式进行显示,这里涉及到对DCM文件数据元素进行遍历的操作目前网上只找到一篇介绍遍历Tag的接口函数的博文使用DCMTK遍历读取DICOM文件所有Tag的方法:https://blog.csdn.net/a36254094/article/details/761442...

2019-10-10 10:57:36 1492 2

原创 DICOM文件格式剖析(初识)

DICOM文件格式剖析(初识)初识DICOM文件,发现网上的资料有点少,大部分的资料都是一些简单的解析,近期在开发对DICOM文件进行操作的封装类,读取磁盘的数据来分析dcm文件的具体存储格式,在这里总结一下复杂的DICOM文件我们知道在操作系统中已经提供了很多的文件格式了,如:。那么为何又提出了DICOM文件(一般文件后缀名是.dcm或.dic)...

2019-10-06 01:49:44 7455 1

空空如也

空空如也

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

TA关注的人

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