自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xzpblog

I dont't know who i am

  • 博客(45)
  • 资源 (15)
  • 收藏
  • 关注

原创 Qt开发常用库与技巧总结一

camera:摄像头应用,开关摄像头,截图class CameraAdapter : public QWidget{ Q_OBJECTpublic: explicit CameraAdapter(QWidget *parent = 0); ~CameraAdapter(); void closeCamera()const; void openCa...

2019-06-10 15:31:03 1888

原创 Proxy 代理模式

动机(Motivation)在面向对象系统中,有些对象由于某种原因(比如对象的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦。 如何在不失去透明操作对象的同时来管理/控制这些对象持有的复杂性?增加一层间接层是软件开发中常见的解决方式。模式定义为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。结构(Struct...

2019-06-09 16:29:45 403

原创 Facade 门面模式

“接口隔离”模式在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题,甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来相互紧密关联的接口是一种常见的解决方案。典型模式Facade Proxy Adapter Mediator模式定义为子系统中的一组接口提供一个一致(稳定)的界面Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)...

2019-06-09 16:10:14 205

原创 Flyweight 享元模式

动机(Motivation)在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行代价----主要指内存需求方面的代价。 如何在避免大量细粒度对象问题的同时,让外部客户程序任然能够透明地使用面向对象方式来进行操作?模式定义运用共享技术有效地支持大量细粒度的对象结构(Structure)伪代码class Font {private:...

2019-06-09 11:57:34 112

原创 Singleton 单件模式

“对象性能”模式面向对象很好的解决了“抽象”问题,但必不可免的要付出一定的代价,对于通常情况来讲,面向对象的成本大都可以忽略不计,但是某些情况,面向对象所带来的成本必须谨慎处理。典型模式 •Singleton •FlyWeight动机(Motivation)在软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个...

2019-06-08 17:17:48 240

原创 Builder 构建器

动机(Motivation)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在 一起的算法却相对稳定。 如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂 对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?模式定义将一个复杂对象的构...

2019-06-08 16:58:57 267

原创 Abstract Factory 抽象工厂

动机(Motivation)在软件系统中,经常面临着“一系列相互依赖的对象”的创建工 作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一 种“封装机制”来避免客户程序和这种“多系列具体对象创建工作” 的紧耦合?模式定义提供一个接口,让该接口负责创建一系列“相关或者相互依 赖的对象”,无需指定它们具体的类。结构(...

2019-06-08 16:48:04 80

原创 Factory Method工厂方法

“对象创建”模式通过“对象创建” 模式绕开new,来避免对象创建(new)过程 中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它 是接口抽象之后的第一步工作。典型模式 •Factory Method •Abstract Factory •Prototype •Builder动机(...

2019-06-08 16:33:20 82

原创 Bridge 桥模式

动机(Motivation)由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度, 乃至多个纬度的变化。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得 类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂 度?模式定义将抽象部分(业务功能)与实现部分(平台实现)分离,使它们 都可以独立地变化。结构(Structure)伪代码class M...

2019-06-08 13:51:52 140

原创 Decorator 装饰模式

“单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的 结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码, 这时候的关键是划清责任。典型模式 • Decorator • Bridge动机(Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能” , 由于继承为类型引入的静态特质,使得这...

2019-06-08 13:44:17 103

原创 Observer 观察者模式

动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关 系” ——一个对象(目标对象)的状态发生改变,所有的依赖对 象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密, 将使软件不能很好地抵御变化。 用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定 的依赖关系。从而实现软件体系结构的松耦合。模式定义定义对象间的一种一对多(变化)的依赖关系,以便...

2019-06-08 12:19:42 103

原创 Strategy 策略模式

“组件协作”模式现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之 间的松耦合,是二者之间协作时常用的模式典型模式• Template Method • Strategy • Observer / Event动机(Motivation)在软件构建过程中,某些对象使用...

2019-06-08 12:04:08 71

原创 Template Method 模式

动机(Motivation)在软件构建过程中,对于某一项任务,它常常有稳定的整体操作 结构,但各个子步骤却有很多改变的需求,或者由于固有的原因 (比如框架与应用之间的关系)而无法和任务的整体结构同时实现。 如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变 化或者晚期实现需求?模式定义定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟 (变化)到子类中。Template...

2019-06-08 11:47:46 102

原创 面向对象设计原则

一:依赖倒置原则(DIP) • 高层模块(稳定)不应该依赖于底层模块(变化),二者都应该依赖与抽象(稳定)。 • 抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖与抽象(稳定).二:开放封闭原则(OCP) • 对扩展开放,对更改封闭 • 类模块应该时可扩展的,但是不能修改 三:单一职责原则(SRP) ...

2019-06-08 11:08:45 453

原创 Qt应用程序开发九:上传文件

上传参数如下:核心代码:void HttpReq::upload(QString jsonfile){ if(!QFile::exists(jsonfile)) return; QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QHttpPa...

2019-05-07 16:03:25 500

原创 Qt应用程序开发八:Qt摄像头QCamera应用

效果图://CSDNCamera.proQT += core guiQT += multimediawidgetsQT += multimediagreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = CSDNCameraTEMPLATE = appSOURCES += mai...

2019-03-27 11:14:11 3425 5

原创 Qt应用程序开发七:Qt自定义事件,Qt线程例子

#include <QApplication>#include"kits/tools.h"#include"kits/MainWidget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); a.setStyleSheet(ReadStyleFile(":/qss/main.cs...

2019-02-19 10:42:49 293

原创 Qt应用程序开发六:Qt mqtt通信

#ifndef MQTTINTERFACE_H#define MQTTINTERFACE_H#include"MQTTClient.h"#include&lt;QObject&gt;#include&lt;QList&gt;class MqttInterFace:public QObject{ Q_OBJECTpublic: void Release(); ...

2019-02-18 10:30:59 2851

原创 Qt应用程序开发五:QMediaPlayer播放视频,提取视频帧,多窗口播放同一视频

效果图:方法一:QMediaPlayer+QVideoWidget (如果其他格式视频播放不出来,安装一个视频解码器可以解决)#include "QMutPlayer.h"#include "ui_QMutPlayer.h"#include&lt;QFileDialog&gt;#include&lt;QDebug&gt;QMutPlayer::QMutPlayer(QWid...

2019-02-16 11:02:39 10585 11

原创 Qt应用程序开发四:给软件添加状态栏图标和软件版本信息

效果图:第一步:创建一个.rc文件,如我再代码根目录下创建了一个myApp.rc文件和准备一张ICO图标,内容为: IDI_ICON1 ICON DISCARDABLE "csdn.ico" #if defined(UNDER_CE)#include &lt;winbase.h&gt;#else#include &lt;winver.h&gt;#en...

2018-11-23 09:28:11 1690

原创 Qt应用程序开发三:写日志文件

开发过程中写日志文件是必不可少Qt中自带qInstallMessageHandler来进行日志的收集使用方法第一步:设置qInstallMessageHandler的回调函数:#include "CsdnDemo.h"#include &lt;QApplication&gt;#include&lt;QTranslator&gt;#include&lt;QDateTime&g...

2018-11-21 16:27:45 5242

原创 Qt应用程序开发二:中英文翻译 国际化

Qt版本:Based on Qt 5.7.0 (MSVC 2013, 32 bit)文本内容:第一步:在.pro文件中添加你需要翻译的语言文件,如:TRANSLATIONS += csdn_en.ts​​​​​​​TRANSLATIONS += csdn_cn.ts名称后缀en表示英文,cn表示中文,这样的格式好处就是在linguist.exe工具中栏目显示清晰如图:...

2018-11-21 11:57:13 716

原创 Qt应用程序开发一:中文编译错误和乱码处理

Qt版本:Based on Qt 5.7.0 (MSVC 2013, 32 bit)很多时候我们给某个控件负值中文值得时候编译就会报‘常量中有换行符’这样的错误如图所示:解决方法:如图所示:选择 :项目-&gt;编辑器-&gt;自定义设置-&gt;如果编码是UTF-8则添加注意:这样设置后,再把代码行往上移动货向下移动 清理重新编译 运行效果:如果乱码就加上QS...

2018-11-20 16:18:43 2871

原创 Qt使用vlc多窗口播放同一个视频

效果图:核心代码:VlcMutPlayer.h#ifndef VLCMUTPLAYER_H#define VLCMUTPLAYER_H#include"vlc/vlc.h"#include &lt;QObject&gt;#include&lt;QImage&gt;class VlcMutPlayer : public QObject{ Q_OBJECTp...

2018-08-18 18:11:19 3346 6

原创 Qt封装VLC接口播放视频

播放效果只实现了部分功能,封装了很多接口,可以自己写逻辑搭配主要代码:VlcPlayer.h#ifndef VLCPLAYER_H#define VLCPLAYER_H#include"vlc/vlc.h"#include &lt;QObject&gt;class VlcPlayer : public QObject{ Q_OBJECTpublic: ...

2018-08-18 17:39:31 7389 5

原创 Qt C++ 调用matlab生成的 dll

首先根据matlab的版本下载对应的matlab运行库matlab 各版本运行库下载地址:https://ww2.mathworks.cn/products/compiler/matlab-runtime.html-------------------------------------------------------------------------------------如我下载安装在D...

2018-04-18 15:09:22 4134 2

原创 局域网语音聊天 第一篇 简介

由于工作需要,最近花了半个月封装了基因局域网语音聊天封装的dll.实现的基本功能如下所示,将相关点记录下来,方便下次使用其中涉及到的几个知识点:1.用portaudio 采集声音2.用opus对声音进行编解码3.声音静音处理4.给予UDP组播实现房间多人语音聊天5.系统音量,录音音量,录音增强,其它程序声音控制...

2018-03-30 14:41:35 1788 2

原创 portaudio获取录音并播放录音

// PortAudioTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include&lt;iostream&gt;#include"portAudio/portaudio.h"using namespace std;#pragma comment(lib,"portAudio/portaudio_x86.lib")PaStream...

2018-03-08 10:57:14 4312 3

原创 c++ 调用c#进行RSA加解密

#include #include #include #include#include using namespace System;using namespace System::IO;using namespace System::Text;using namespace System::Security::Cryptography;using namespace mscl

2018-02-01 16:56:58 603

原创 Qt打包遇到找不到Qt platform plugin "windows"问题

相信很多同学都遇到过这样的问题。我们在打包Qt的可执行程序的时候,用以下方式一般可以解决这个问题找到也就是Qt命令行开发工具,输入windeployqt xxx.exe 就可以生产相关依赖库,如图所示回车运行就会帮你找到相关依赖库,当找到的依赖库中包含platforms 时,一般都能够解决,找不到Qt platform plugin "windows"问

2018-01-22 10:47:53 25625 7

原创 Qt桌面截图并使用libquant 库压缩图片发送

核心代码: int start = QDateTime::currentDateTime().currentMSecsSinceEpoch(); QPixmap image = screen->grabWindow(0); QBuffer buffer;// qDebug()<<_pixWidth<<_pixHeight; image = image.scale

2018-01-20 16:00:00 805

原创 PyQt http Post 请求数据

import jsonimport sysfrom PyQt5.QtCore import QObject, QUrl, QByteArrayfrom PyQt5.QtNetwork import QNetworkAccessManager,QNetworkRequestclass HttpReq(QObject): def __init__(self): Q...

2018-01-13 09:08:53 4950 2

原创 最新基于Qt实现多电脑屏幕监控

本项目的原理是,多客户端通过后台的不断截屏,通过TCP socket 发送到服务器端进行项目,目前我代码里面设置最大监控4台电脑,当然你也可以自己设置哈。客户端代码//头文件tcpimageclient.h#ifndef TCPIMAGECLIENT_H#define TCPIMAGECLIENT_H#include<QObject>#include<QTcpSocket>#include<

2017-12-27 14:03:16 2021

原创 sdl + ffmpeg 播放多个mp3

完整代码:#include #include #include #define __STDC_CONSTANT_MACROSextern "C"{#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libavdevice/avdevice.h"#include "libavf

2017-12-11 10:13:10 445

原创 c++ 获取软件版本信息

c++ 获取软件版本信息

2017-10-30 14:45:58 4757

原创 基于openVR实现任意软件界面映射到VR眼镜

基于openVR实现任意软件界面映射到VR眼镜

2017-10-26 09:27:50 3645 5

原创 根据进程名称获取窗口句柄

// WinWnd.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include "WinWnd.h"#include&lt;stdio.h&gt;#include&lt;Windows.h&gt;#include&lt;TlHelp32.h&gt;#include&lt;iostream&gt;using namespace std...

2017-10-26 09:19:01 6713

原创 Qt 通过绘画设置边框阴影

首先widget设置 setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true);然后重载painteventvoid ShadowMethod::paintEvent(QPaintEvent *event){ QPainterPath path;

2017-10-11 16:57:52 4382

原创 openssl的加解密,签名,验签代码

加密算法:QString EncryData(const char *publicKey, const char *content)//publicKey:公钥,content:要加密的内容{ RSA *p_rsa = GetKeyRSA(publicKey,1);//将文本公钥转化成 RSA 对象 int rsa_len = RSA_size(p_rsa);

2017-09-20 09:26:46 1715

原创 Qt复制dll到系统盘system32下失败的解决方法

repairDll(const QString findPath){ QString path = "C:/Windows/System32" ; if(path.isEmpty()) return; //获取所选文件类型过滤器 QStringList filters; // 文件过滤 filters<<QS

2017-08-15 15:26:09 2036

Qt自定义事件,Qt线程应用

Qt自定义事件,Qt线程应用。

2019-02-19

Qt mqtt通信

mqtt通信,Qt mqtt通信

2019-02-18

QMediaPlayer多窗口播放视频

QMediaPlayer播放视频,用QVideoWidget,QML,QLabel 显示视频内容

2019-02-16

Qt使用vlc多窗口播放同一个视频

Qt使用vlc多窗口播放同一个视频,Qt使用vlc多窗口播放同一个视频

2018-08-18

Qt使用vlc库播放视频

Qt使用vlc库播放视频,Qt 对vlc接口得封装,vlc接口封装

2018-08-18

c++ vlc 动态库

c++ vlc 动态库,vlc 动态库 ,vlc库 c++ vlc 动态库,c++ vlc 动态库

2018-08-18

opus和portaudio的32位与64位的静态库

opus和portaudio的32位与64位的静态库,opus静态库,portaudio静态库

2018-05-10

c++高效截屏

c++高效截屏 c++高效截屏c++高效截屏 c++高效截屏 c++高效截屏 c++高效截屏

2018-04-11

portaudio获取录音并播放录音

基于portaudio获取录音并播放录音,基于portaudio获取录音并播放录音

2018-03-08

exe依赖dll提取软件

exe 依赖 dll 提取,Qt打包神器, 可执行程序依赖dll自动提取

2018-01-22

Qt使用libquant 库压缩图片发送

Qt使用libquant 库压缩图片发送,已打包libquant库,可以直接调用

2018-01-20

Qt基于TCP多电脑屏幕监控,Qt发送图片

使用Qt5.7编写的 最新基于TCP socket 同学实现多电脑屏幕监控,windows版

2017-12-27

c++ 解压zip文件到指定文件夹

c++ 解压zip文件到指定文件夹,c++ 解压zip文件到指定文件夹

2017-10-27

基于openVR实现投射任意软件界面到VR眼镜

基于openVR 实现修改VR眼镜里面的内容,该代码实现了openVR实现投射任意软件界面到VR眼镜

2017-10-25

基于openssl的RSA的加密,解密,签名和验证签名

基于openssl的RSA的加密,解密,签名和验证签名, RSR加密 RSA解密 openssl签名 openssl验签, 基于openssl的RSA的加密,解密,签名和验证签名

2017-09-20

空空如也

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

TA关注的人

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