自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (9)
  • 收藏
  • 关注

转载 C++ 字符串格式化

使用snprintf格式化字符串使用boost::format格式化字符串使用stringstream格式化字符串具体示例使用snprintf格式化字符串#include <stdio.h>using std::string;// 准备数据string haha("haha");int num = 3;// 准备格式string fmt("test string: %s. test number: %d");char targetString[1024];// .

2021-06-03 15:33:41 6634

原创 c++ 建造者模式

一、建造者模式Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建模式之一,用来隐藏复合对象的创建过程。他把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。对象的创建:Builder模式是为了对象的创建而设计的模式-创建的是一个复合对象,被创建的对象为一个具有复合属性的复合对象,关注对象创建的各个部分的创建过程,不同工厂(Builder)对产品属性有不同的创建方法。Builder:为创建产品各个部

2021-05-31 17:57:17 2807 2

转载 c++ 观察者模式(发布—通知)

转载:https://www.cnblogs.com/carsonzhu/p/5770253.html一、观察者模式Observer 模式应该可以说是应用最多、影响最广的模式之一,因为 Observer 的一个实例 Model/View/Control( MVC) 结构在系统开发架构设计中有着很重要的地位和意义, MVC实现了业务逻辑和表示层的解耦。在 MFC 中, Doc/View(文档视图结构)提供了实现 MVC 的框架结构。在 Java 阵容中, Struts 则提供和 MFC 中 Doc/Vie

2021-05-28 11:15:48 814

转载 探究 c++ 虚函数表

转载:https://blog.csdn.net/sinat_21107433/article/details/108552472封装,继承和多态,是C++的三大特性。提到多态,就会提到虚函数virtual;提到虚函数,不得不说虚函数表。我们知道,在一个类Class中,如果有定义虚函数,那么这个类对象所占用的存储空间中,会保存一个指向虚函数表的指针,结果是这个类的大小会增加4,即一个指针的大小。那么这个指针存储在类的什么地方?虚函数表里是如何存放各个虚函数的?在具有继承关系的不同类中,虚函数表中的存储有

2021-05-25 16:42:12 277

原创 c++ 策略模式

一、定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。1.1 角色:抽象策略角色(Strategy): 抽象策略类。具体策略角色(ConcreteStrategy):封装了继续相关的算法和行为。环境角色(Context):持有一个策略类的引用,最终给客户端调用。1.2 UML图:二、示例2.1 项目结构2.2 .h .cpp文件myStrategy.h注:里面的具体策略角色,可以单独写成一个类文件。

2021-05-25 11:36:49 2476

原创 最简单的c++日志输出

最简单的日志mylog.h#pragma once#include <windows.h>#include <ctime>#include <iostream>#include <fstream>#include <direct.h>using namespace std;static std::mutex _mtx;class Log{public: Log(); ~Log(); static void i

2021-05-21 16:10:19 1744

原创 c++ 简单工厂模式 示例

一、示例结构二、示例代码cat.h#pragma once#include "productBase.h"class cat : public productBase{public: cat(); ~cat(); virtual void printProductInfo(); virtual void printEatFood(); void catVoice();};dog.h#pragma once#include "productBase.h"class

2021-05-21 11:55:04 456

原创 QCustomPlot 使用示例

一、项目结构fileparser.h#ifndef FILEPARSER_H#define FILEPARSER_H#include <QObject>struct structReferInfo{ double pitch_input; double heading; double pitch; double roll; double airSpeed_indicated; double accelerationOverLoad_

2021-05-20 17:45:53 1089 2

原创 c++ vs 创建dll、lib及其调用调试

一、DLL1. 在vs中先新建项目makeDll,选择dll动态链接库项目;2. 项目创建成功后添加如下文件:dllFun.h#pragma once#include "global.h"//自己另外定义的类namespace myFun { class MAKE_DLL_EXPORT dllFun { public: int calculateIntSum(int a, int b); };}framework.h#pragma once#define WIN3

2021-05-20 11:00:36 1438 5

转载 C++11常用特性的使用经验总结

概述及目录(转载自 http://www.cnblogs.com/feng-sc)C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮助,文章中的总结可能存在很多不完整或有错误的地方,也希望读者指出。大家可以根据如下目录跳到自己需要的章节。1、关键字及新语法C

2021-05-12 16:09:55 133 1

转载 链表经典练习题

转载:链表经典练习题一、从尾到头打印单链表因为单链表是有指向的,前一节点只能指向下一节点,因此为了实现从尾到头打印链表可以使用一种非常简单的方法就是递归,先遍历再输出。代码实现:void LinkListReversePrint(LinkNode* head){ 85 if(head == NULL){ 86 return;//空链表 87 } 88 LinkListReversePrint(head -> next);

2020-11-19 11:19:56 327

转载 主机序和网络序

转载:主机序和网络序不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种:1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说低位值小,就应该放在内存地址小的地方,也即内存地址低位反之,高位值就应该放在内存地址大的地方,也即内存地址高位

2020-11-19 10:54:14 1347

转载 七大经典排序算法总结(C语言描述)

转载自:https://www.cnblogs.com/maluning/p/7944809.html目录一.交换排序1.冒泡排序2.快速排序二.插入排序1.直接插入排序2.希尔(shell)排序三.选择排序1.直接选择排序2.堆(Heap)排序四.归并排序正文简介  其中排序算法总结如下:  一.交换排序交换排序的基本思想都为通过比较两个数的大小,当满足某些条件时对它进行交换从而达到排序的目的。1.冒泡排序基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一

2020-11-17 15:24:33 245 1

转载 QT界面开发-QAxObject 读写excel(COM组件)-常用功能封装代码

转载:https://www.cnblogs.com/nxopen2018/p/12197604.htmlqtExcelApi.h#pragma once#include <ActiveQt/QAxObject>#include <QDir>using namespace std;class qtExcelApi{public: qtExcelApi(void); ~qtExcelApi(void); /** * @brief

2020-11-09 11:52:18 593

转载 Qt 记住上次打开路径

转载:https://blog.csdn.net/artisans/article/details/44949645?utm_source=blogxgwz9QSetting是很有用的一个类,它能记住一些值,当程序再次打开时恢复。 下面是用它来保存程序上次打开的路径。QSettings setting("./Setting.ini", QSettings::IniFormat); //为了能记住上次打开的路径QString lastPath = setting.value("Last

2020-11-09 11:30:10 2672

转载 qt 判断一个字符串是否为纯数字

判断一个字符串是否为纯数字bool isDigitStr(QString src) { QByteArray ba = src.toLatin1();//QString 转换为 char* const char *s = ba.data(); while(*s && *s>='0' && *s<='9') { s++; } if (*s) { //不是纯数字

2020-11-02 14:59:13 2858

转载 qt 开了子窗口,关闭主窗口后,子窗口仍存在的解决方法

转载:https://blog.csdn.net/qq_36170958/article/details/108686841项目场景:在使用VS+Qt做图像处理软件项目开发时,有一个父(主)窗口和若干子窗口,点击主窗口的按钮,子窗口弹出,要求不管子窗口打没打开,关闭父窗口时退出应用程序。问题描述:在父窗口的按钮点击槽函数中设置了子窗口显示,代码如下void MyQtDemo::on_pushButton_clicked(){ childClass.show();}当子窗口显示出来后,此

2020-10-22 11:09:46 4680 8

转载 Ubuntu 各版本 iso 下载

https://www.oschina.net/p/ubuntuhttp://releases.ubuntu.com/http://mirrors.163.com/ubuntu-releases/14.04/

2020-10-12 10:59:11 2630

转载 Qt 设置应用程序图标

转载:https://blog.csdn.net/xiezhongyuan07/article/details/79320523在qt应用程序中,我们能想到的图标一般就以下三种:应用窗口左上角的 图标setWindowIcon()状态栏上显示的图标setWindowIcon()可执行程序本身的图标两种设置方式,下面会讲。对于以上三种图标都该怎么样设置呢?一.我们先来讨论前两种,分别是窗口左上角的图标和状态栏的图标,其实这两种图标只需要设置一次就可以了,他们总是相同的

2020-10-10 15:45:07 1185

转载 C/C++语言字符串操作总结大全(超详细)

链接:https://blog.csdn.net/cbnotes/article/details/50291353#

2020-09-17 14:32:28 211

转载 Qt 获取指定文件夹下的所有文件及指定文件夹下的所有文件夹

头文件包含#include <QFileDialog>代码实现获取指定文件夹下的所有文件(*.tiff *.tif): mFolderPath = QFileDialog::getExistingDirectory(NULL, "Open Folder", "F:\\FocusImgs\\imgs\\a1"); if (mFolderPath.isEmpty()) return; // 获取所有文件名 QDir dir(mFolderPath); mFolderPath = d

2020-09-07 16:31:23 3479

原创 数字字符串排序与十六进制互转

如:“123456”转为0x12 0x34 0x56或者:0x12 0x34 0x56转为“123456”//转化方向:0x12 0x34 0x56 -> "123456" QString idStr[3]; uchar g_deviceId[3][3] = {{0x52, 0x34, 0x63}, {0x12, 0x34, 0x56}, {0x12, 0x34, 0x63}}; for(int i = 0 ; i < 3; i++)

2020-08-27 17:21:53 499

转载 Qt 将10进制数字与26进制(用A-Z来表示)之间相互转换

参考:将10进制数字转化为26进制用A-Z来表示.h文件#ifndef CONVERSIONOFNUMBERSYSTEM26_H#define CONVERSIONOFNUMBERSYSTEM26_H#include <QObject>class conversionOfNumberSystem26 : public QObject{ Q_OBJECTpublic: explicit conversionOfNumberSystem26(QObject *par

2020-08-26 11:17:20 496

原创 Qt for Android 设置启动页图片(可延时显示)

在 AndroidManifest.xml里的activity 标签内添加如下代码:<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/>打开 项目下的android/res 目录,将 splash.png (其他图片格式也可以)分别按照高-中-低分辨率存放在放到 drawable-* 文件夹中。注意对应,在 AndroidManifest.xml

2020-08-25 11:13:17 534

原创 Qt 在QTableWidget中添加QCheckBox、QProgressBar等子控件的方法

思路:某些需要布局的控件,比如checkBox,可以先将其单独写进一个具有布局的窗口,然后再将这个窗口添加到tableWidget的单元格里。下面是一个简单的例子。.h文件:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QProgressBar>#include <QCheckBox>#include <QHBoxLayout>QT_BEGIN

2020-08-24 14:26:06 2152

原创 Qt Android实现QTableWidget手势滑动(实质还是鼠标事件)

参考:https://blog.csdn.net/lthcth111/article/details/52223950https://blog.csdn.net/qq_37603131/article/details/90543107.h文件#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QScrollBar>#include <QPropertyAnimation>#include

2020-08-20 17:36:37 1154

转载 Qt for Android 动态申请权限

一.Android 6.0权限机制在Android 6.0 关在AndroidManifest.xml 静态申请权限不够.需要运行时,用代码申请才能打开相应权限.否则只让用户手动在设置找到应用打开相应权限,才能工作.体验非常之差.比如蓝牙程序在6.0必须有定位权限的才能打开,但是Qt Android的动态申请定位权限请求时灵时不灵,有时运行很长时间均请求.原生java 动态请求代码很容易,但Qt 需要处理工作二.解决办法参考 https://blog.csdn.net/zdc9023/arti

2020-08-19 17:06:17 1617 2

转载 C语言 值传递和地址传递

值传递这种方式使用变量、常量、数组元素作为函数参数,实际是将实参的值复制到形参相应的存储单元中,即形参和实参分别占用不同的存储单元,这种传递方式称为“参数的值传递”或者“函数的传值调用”。值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。来看下面一个调用示例:#include <stdio.h>/* 变量x、y为Swap函数的形式参数 */v

2020-08-14 16:15:40 1514 3

转载 进程间通信

转载:进程间通信正文每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。Linux 内核提供了不少进程间通信的机制,我们来一起瞧瞧有哪些?管道如果你学过 Linux 命令,那你肯定很熟悉「|」这个竖线。$ ps auxf | grep mysqlmyPipe 就是这个管道的名称,基于 Linux 一切皆文件的理念,所以管道也是以文件的方式存在,我们可以用 ls 看一下,这个文件的类型是 p,也就是 pipe(管道)

2020-08-14 15:15:05 155

转载 单例模式(懒汉单例和饿汉单例)

转载于:http://www.manongjc.com/article/53899.html==单例模式就是指一个类在整个程序中只有一个实例。==确保一些不需要重复创建的类创建多余的实例。特别是某些工具类,在所有地方使用该类都只需要一个实例。基本思路就是在单例类内部创建一个静态的自身对象,并自己管理自己。下面代码用锤子Hammer来表示这个工具,简单的实现如下1、懒汉模式懒汉模式就是指铁匠是个懒汉,这个锤子类的实例在没人用的时候,铁匠不去造它,这样做能节约铁匠铺的空间。#include <

2020-08-13 16:44:05 2326 2

转载 程序员必知的 89 个操作系统核心概念

操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。shell:它是一个程序,可从键盘获取命令并将其提供给操作系统以执行。 在过去,它是类似 Unix 的系统上唯一可用的用户界面。 如今,除了命令行界面(CLI)外,我们还具有图形用户界面(GUI)。GUI (Gra..

2020-07-15 17:33:32 411

转载 QT5的程序打包发布

首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。第二,介绍一下我所使用的打包工具。一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接https://enigmaprotector.com/en/downloads.html,软件图标如下:

2020-07-14 16:10:53 186

转载 软件开发文档模板

软件开发文档模板原文地址:https://www.cnblogs.com/lishanlei/p/9467407.html原文地址:https://blog.csdn.net/a33130317/article/details/81631427

2020-07-14 14:29:42 1706

转载 软件开发流程纲要及各个阶段产生的文档

软件开发流程纲要及各个阶段产生的文档1需求调研与分析当我们做一个项目时,可能客户口头告诉你他想要做一个什么东西,或者给了你一些文档告诉你这就是需求。就根据几句口头讲述,或者一些文档,很难知道到底具体需要做什么。这时候就要对需求进行挖掘,以得到功能列表,或者用例图。这时候交流是非常重要的。通过不断的与客户进行交流,将用例详细化,也不必要追求完整的功能或者用例。通过一次次的交流,不断将功能列表完善。需求分析步骤是需求的获取,用户需求分析,用户确认,软件需求分析,需求评审。评审之后就开始系统设计。形成文档

2020-07-14 14:23:38 2439

转载 设计模式:面向对象设计的六大原则

原文链接:https://www.cnblogs.com/yeya/p/10655760.html六大原则单一职责原则——SRP开闭原则——OCP里式替换原则——LSP依赖倒置原则——DIP接口隔离原则——ISP迪米特原则——LOD1. 单一职责原则单一职责原则,Single Responsibility Principle,简称SRP。其定义是应该有且仅有一个类引起类的变更,这话的意思就是一个类只担负一个职责。举个例子,在创业公司里,由于人力成本控制和流程不够规范的原因,往往一个人需要

2020-06-28 17:31:59 225

原创 Qt 通过事件过滤器实现屏蔽某控件的某个事件响应(例如:屏蔽QScrollArea滚动区域对滚轮滚动的响应)

背景:QScrollArea里添加了多个QChart ,QChart里的图像可以通过滚轮滚动实现放大缩小,但与此同时QScrollArea窗口也会相应的发生滚动,无法定在某个位置上,只放大缩小QChart里的图像。解决办法:利用事件过滤器,屏蔽QScrollArea 滚动区域对滚轮事件的响应。.h文件里添加事件过滤器(重写过滤器):protected: bool eventFilter(QObject *target, QEvent *event);.cpp文件的构造函数里添加一下代码(注

2020-06-17 15:45:41 2633 4

转载 C/C++ 编程规范

链接: C 语言编程 — 编程规范

2020-06-08 16:49:29 141

转载 TCP/IP 协议详解

一图看完本文一、 计算机网络体系结构分层计算机网络体系结构分层计算机网络体系结构分层不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。二、 TCP/IP 基础1. TCP/IP 的具体含义从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议

2020-06-05 17:29:57 360

转载 QChart 使用appened添加数据点画图,数据量较大时画图慢、卡顿的解决方法

对于QChart,一个稍微能缓解卡顿的方案就是:series->setUseOpenGL(true);OpenGL画图快,是牺牲了一些其他性能的,具体参考Qt文档。目前我画1.5万个点,可以说是秒出,还是挺快的。经过测试:不使用openGL时,单条曲线3000个点左右就卡的不行了,界面中的其他按钮几乎卡的点不了,chart图形也更新不动了。使用openGL之后,我测试采集了4万多个点,显示依然正常,用鼠标移动图像时,略有卡顿,但卡顿很轻可以接受,用鼠标框选放大也没问题,界面中的其他按钮响应很快

2020-05-28 09:39:05 7123 4

原创 Qt 界面美化——利用样式表操作

参考:https://blog.csdn.net/sinan1995/article/details/80080148按钮样式表设置: QString qss = ( //正常状态样式 "QPushButton{" "background-color:rgba(60, 179, 113);" //背景色(也可以设置图片) "border

2020-05-21 17:07:35 861

drawTool.rar

QCustomPlot 的使用示例(示例采用的是时间坐标轴)

2021-05-20

makeDll.rar

vs c++ 创建dll库 及其显示、隐式调用的示例

2021-05-20

saveAsTxt.zip

实现文件打开与保存。主要包括在指定目录下新建文件夹,然后将新写的文件存入新建的文件夹中,存完之后有提示是否打开,确定即可立即打开刚刚写入的文件。

2020-05-11

QChart_series.zip

运用QChart,在Qt平台实现实时动态曲线图绘制。运用到的主要知识:QChart,定时器。主要原理就是通过定时器计时,超过一定时间就执行一次画线操作,同时更新时间轴。原理很简单,但是对于初学者而言,还是值得借鉴学习的,尤其是对定时器不懂的同学,也能从这里深入理解定时器的作用。

2020-04-20

mqtt_client.zip

基于Qt实现MQTT客户端通信示例,实现了客户端之间的订阅、发布消息、接收消息的功能。mqtt目前主要有两个版本,一个是第三方库,一个是qt官方库,两者都需要自己下载源码生成库,另外在方法接口、函数的使用上还是有些区别,注意千万不要弄混了,我当时就是把方法弄混了折腾了好久。。。。

2020-04-20

QT socket通信,收发结构体.zip

在Qt里利用TCP/IP协议,socket套接字设计实现结构体数据的收发,类似实现简单的自定义通信协议。发送的结构体包含帧头(占两字节)、数据长度(占一字节)、数据(不多于64字节)、校验和(占一个字节)。

2020-03-27

基于C语言实现的万年历2(在万年历1.0基础上,1.0版本见博客小项目).rar

这是从某公开课上学到的一个小项目,带有图片和背景音乐。主要涉及的知识:C编程,贴图技术,动态库加载(播放背景音乐),图形库运用里的文字输出等

2020-02-24

基于C语言—酷炫背景(流星雨)下的文字展示(带背景音乐).rar

主要涉及到C编程、贴图技术、音频加载(播放背景音乐)、酷炫样式的文字输出方式等。方法很简单,但是做出来的效果非常酷炫。这是本人在某公开课上学习到的,感觉可能对某些萌新有用。

2019-12-17

基于C语言实现的贪食蛇小游戏.rar

该代码实现了贪食蛇的基本功能,用到了C语言基础知识,包括结构体、数组、循环语句等等,另外还使用到了图形库,图形库的使用可以起到美化效果,用起来也更方便。特别适合刚接触C编程的小白看,若发现什么错误或有什么建议,请悉心批评指导。

2019-12-16

空空如也

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

TA关注的人

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