自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 ubuntu下生成coredump并设置永久生效

编辑/etc/default/apport,修改下列参数。在/etc/sysctl.conf文件末尾添加。要永久关闭Apport.server。在/etc/profile中加入。创建 /corefile目录。

2023-04-27 17:00:06 1780

原创 记录一个Qt的bug

Qt5 QOpenGLWidget bug记录

2023-04-20 14:58:08 176

原创 git总结

git总结

2023-04-03 07:53:04 93

原创 Qt msvc编译器 配置 cuda开发环境

Qt cuda

2022-07-26 10:05:57 811

原创 Qt编译Assimp

learn opengl qt

2022-03-10 16:15:13 456

原创 基于QPluginLoader的简单插件系统

插件系统分为两部分 第一部分:主程序,实现系统的 通用逻辑,加载定制化的插件 第二部分:插件,实现定制化的功能。系统的升级即可通过升级不同的插件即可完成整个系统的升级Qt插件系统中 我们使用 QPluginLoader 这个类去实现,主系统自动化加载插件。1.定义好系统的纯虚类eg:#ifndef FUNABSTRSCT_H#define FUNABSTRSCT_H#include <QObject>class FunAbstrsct{public: vir

2021-02-17 15:23:34 575

原创 SOCKET 简单实现同步服务器

#ifndef SERVER_H#define SERVER_H#include <QObject>#include <list>#include <winsock2.h>class server : public QObject{ Q_OBJECTpublic: explicit server(QObject *parent = nullptr); virtual ~server(); SOCKET m_server;

2021-02-03 14:37:18 241

原创 QWaitCondition使用小结

#include <QCoreApplication>#include <thread>#include <QWaitCondition>#include <iostream>#include <QThread>#include <QMutex>#include <queue>using namespace std;QMutex mutex1;QWaitCondition condition;int t

2021-01-15 15:50:00 432

原创 线程同步QSemaphore

QSemaphore类提供了强壮的整数信号量。QSemaphore也可以被用来使线程的执行顺序化,和QMutex的方法相似。信号量和互斥量的不同在于,信号量可以在同一时间被多于一个的线程访问。/**一个生产者 多个消费者情况,,使用 QSemaphore线程同步**/#include <QCoreApplication>#include <thread>#include <QSemaphore>#include <iostream>#in

2021-01-15 14:16:11 162

原创 win系统下共享内存通信示例

#include "mainwindow.h"#include <QApplication>#include <thread>#include <iostream>#include <windows.h>#include <mutex>using namespace std;typedef struct{ int head; int length; char data[1024] = {0};}pack

2021-01-05 14:28:25 117

原创 winSocket客户端简单示例

#ifndef SOCKETCLIENT_H#define SOCKETCLIENT_H#include <QObject>#include <winsock2.h>#include <queue>using namespace std;class socketClient : public QObject{ Q_OBJECTpublic: explicit socketClient(QObject *parent = nullptr);

2021-01-04 14:17:59 221

原创 c++类的静态函数访问成员方法

在类的静态函数中调用类的成员方法或变量时会报错,此时可以使用如下方法class A(){public: void setA(const int &a); static test();private: int m_a; static A* pThis;}A* A::pThis = nullptr;A::A(){ pThis = this;}void A::setA(const int &a){ m_a = a;}void A::test(){ int

2020-12-29 15:23:57 2636

原创 Qt日志(log)系统

在release下将异常打印到文件中void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg){ static QMutex mutex; mutex.lock(); QString text; switch(type) {// case QtDebugMsg:// text = QString("Debu

2020-07-27 13:10:21 877

原创 Qt调用python

#include #include <math.h>#include <Python.h>using namespace std;/*注意:error: ‘::hypot’ has not been declared注意将math.h引用在Python.h之前可解决以上问题python文件需要放在和.exe同级目录下面,否则将会调用失败使用如下方式将.py文件封装为.pyc文件 1.cmd定位到.py所在目录 2.在cmd中使用命令 python -

2020-07-21 16:02:16 352

原创 设计模式--观察者模式

定义对象间一对多的依赖关系,使得每一个对象状态改变,则所有依赖他的对象都会得到通知观察者模式 : 秘书站在门口,看见老板来了,发出信号,老板来了,,然后 员工通过观察秘书信号停止打游戏#include <iostream>#include <string>#include <list>using namespace std;class Secretary;//观察者class PlayGamerPeople{public: PlayGame

2020-07-12 20:15:25 120

原创 设计模式--责任链模式

责任链模式:有四个任务A,B,C,D 客户端将任务交给A,A完成后将任务交给B,B完成后将任务交给C.....本质:链表的实现#include <iostream>using namespace std;class makeCar{public : virtual void makeCarHandle() = 0; makeCar *setNextHandle(makeCar *handle) { if (handle != nullptr) { this-

2020-07-08 20:19:58 121

原创 设计模式--命令模式

命令模式是将一个动作分解为 请求命令者,管理命令者,执行命令者eg: 医生看病,这个动作分解为 患者提交看病申请给 护士,护士 负责管理申请, 同样负责将病历下发给医生,最后医生看病#include <iostream>#include <list>using namespace std;//执行者抽象类class doctors{public: virtual void trea() = 0;};//执行者实现类class NoseDoctors :p

2020-07-07 20:56:23 489

原创 设计模式--模板模式

模板模式:抽象类中规定好 抽象方法(具体实现由子类去实现),并规定好抽象方法的调用顺序#include <iostream>using namespace std;class makeCar{public: //抽象方法 virtual void makeHead() = 0; virtual void makeBody() = 0; virtual void makeTail() = 0; //抽象方法的调用顺序 void getCar() { makeHead()

2020-07-06 19:59:25 904

原创 设计模式--桥接模式

将抽象部分和实现部分解耦合,使得他们可以独立变化 eg:小汽车 都需要发动机,而发动机又多种多样,即多种多样的车安装各种类型的发动机#include<iostream>using namespace std;class Engine{public: virtual ~Engine() { } virtual void installEngine() = 0;};class A_Engine : public Engine{public: virtual ~.

2020-07-02 20:38:23 120

原创 设计模式--适配器模式

将已有的接口通过适配器转换成 新的需求所需要的接口#include <iostream>using namespace std;//新的需求所需要的接口class current18v{public: virtual void useCurrent18v() = 0; virtual ~current18v() { }};//已有的接口class current220v{public: void useCurrent220v() { cout <&

2020-07-01 20:37:55 71

原创 设计模式--装饰模式

动态的为某个对象增加额外的功能#include <iostream>using namespace std;class Car{public: virtual void showFunc() = 0; virtual ~Car() { }};class smallCar :public Car{public: void showFunc() { cout << "我能跑" << endl; }};class flyCar

2020-07-01 20:16:17 95

原创 设计模式--代理模式

特点:抽象角色:声明真实对象和代理对象的共同接口。代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。使用场景:代理模式就是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到

2020-06-29 20:19:17 5961

原创 设计模式--原型模式

一个复杂的对象具有自我复制功能,统一一套抽象接口注意:深拷贝浅拷贝问题#include <iostream>#include <string>using namespace std;class Person{public: virtual Person *clon() = 0; virtual void printT() = 0;};class man : public Person{public: man() { _name = "";

2020-06-28 20:16:51 89

原创 设计模式--建造者模式

**将对象的构建和对象的表示分离开来优势:对于使用者来说只需要选择不同类型的产品按照指定的框架就可以得到产品**#include<iostream>#include <string>using namespace std;//想要构建的产品的各个零件组成类class house{public: void setDoor(const string &door) { _door = door; cout << door <&lt

2020-06-27 20:30:36 121

原创 设计模式--抽象工厂类

工厂模式:一个工厂只生产一种产品抽象工厂模式:一个工厂生产一类产品#include <iostream>using namespace std;//抽象产品类class FruitObject{public: virtual void getFruit() = 0;};//抽象工厂类class FactoryObject{public: virtual FruitObject *createApple() = 0; virtual FruitObject *c

2020-06-26 11:13:03 114

原创 设计模式--工厂模式

工厂模式:在简单工厂模式下进一步解耦合工厂类,即将工厂分门别类,每个产品对应一个具体的工厂每增加一个产品,就增加一个工厂类#include<iostream>using namespace std;//水果抽象类class FruitObject{public: virtual void getFruit() = 0;};//苹果实现类class apple : public FruitObject{public: void getFruit() { cou.

2020-06-24 20:39:28 173

原创 设计模式--简单工厂模式

简单工厂模式:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类(本质是多态实现) 优点:不需要用户自己去创建实例,工厂类会代替用户创建 缺点:每次增加新的产品都需要修改工厂类,不符合开闭原则#include<iostream>using namespace std;//抽象类class Fruit{public: virtual void getFruit() = 0;};//具体实现类class apple : public

2020-06-24 20:03:03 116

原创 设计模式--单例模式(以及多线程下懒汉式优化)

单例模式:保证某个类在项目中只能实例化一次,减小资源的浪费懒汉式:在调用静态方法的时候分配内存饿汉式:直接分配内存懒汉式#include <iostream>using namespace std;/* 单例模式:保证某个类在项目中只能实例化一次,减小资源的浪费*/class socketer{private: socketer() { cout << "socketer执行" << endl; } ~socketer() {

2020-06-22 20:12:47 169

原创 设计模式--依赖倒转原则

依赖倒转原则:依赖于抽象类(接口类),不依赖于具体实现类即:高层业务逻辑依赖抽象类,具体实现类 依赖于抽象业务逻辑高层逻辑为:软件设计具体需求(eg:制造一台电脑)抽象层为:很多抽象类(eg:电脑由CPU,显卡,硬盘,内存条等组成,此部分为抽象类)具体实现类:实现高层逻辑的业务类(eg:具体的CPU,,显卡,硬盘,内存条等)#include<iostream>using namespace std;//抽象类class Cpu{public: virtual void do

2020-06-21 20:29:30 139

原创 设计模式--开闭原则

开闭原则核心:对扩展开放,对修改关闭即:软件增加或修改需求时,通过增加代码来实现功能,对原有功能模块代码不进行任何改动#include <iostream>using namespace std;class BankWorker{public: virtual void doSomeThing() = 0;};class BankSave : public BankWorker{public: void doSomeThing() { cout <<

2020-06-21 11:09:15 96

原创 软件设计模式--类与类之间的关系

注:以下示例只是为了说明 类与类之间的关系可能不太合理,请各位杠精不要抬杠1.依赖关系:一个类是另一个类的成员变量或者返回值,UML图中使用带箭头得虚线表示(eg:小明开车去上班)#include <<iostream>>using namespace std;class Car{}class XiaoMing{public: void goWork(Car *p) { } Car *goWork() { }}int main(){r

2020-06-20 20:35:15 480

原创 Qt 自定义多边形按钮

Qt下自定义多边形按钮//.hpp文件#include<QPushButton>class PushButtonObject : public QPushButton{ Q_OBJECTpublic: explicit PushButtonObject(QWidget *parent = nullptr); void setPixName(const QString &path="");}//.cpp文件PushButtonObject::PushBut

2020-06-20 16:34:15 941

bes二进制数据查看器

bes二进制数据查看器

2024-03-19

Qt简单实现的插件系统

2021-02-17

new_fanjinbi.rar

本项目使用QT5.12.3构建,实现可了游戏翻金币的所有内容,包括完整的代码以及注释,同时资源文件已经同步上传(放在项目文件夹中)

2020-02-15

空空如也

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

TA关注的人

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