- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 opencv实现数字匹配
项目中用到的利用opencv库识别数字,例子比较简单,本身没什么价值,简单记录一下。上代码:#pragma once#include <QObject>#include <QFile>#include <QDebug>#include <QTextCodec>#include "IEvent.h"#include "clickevent.h"#include "judgeevent.h"#include "executor.h"#incl
2020-12-27 18:46:53
387
原创 Qt多线程实现(一)
Qt中有两种实现多线程的方式,其中一种是写一个继承于Object的类,将这个类移入QThread 对象中,代码如下:1.写一个继承于object 的线程类//头文件class executorThread : public QObject{ Q_OBJECTpublic: executorThread(QObject *parent=0); ~executorThread();//源文件executorThread::executorThread(QObject *parent)
2020-12-27 18:39:55
330
原创 Qt信号槽中参数的元对象注册
最近项目中遇到一个问题:线程中的槽函数总是无法响应。原因:费了九牛二虎之力终于找到问题之所在,原来是所用的信号槽中的参数类型不是Qt的自带的基础类型,而是自定义类型,Qt的信号槽在主线程和子线程中只能传递Qt的基础数据类型,比如QString、int等(不是线程与线程间传递不存在这个问题),所以我这里主线程和子线程无法通过信号槽来传递自定义参数。解决方案:注册参数的元对象类型。 qRegisterMetaType<QVector<QStandardItem*> >("QV
2020-12-27 18:01:57
1065
原创 饥汉模式
所谓饥汉模式,个人理解就是一种程序设计实现的形象的说法,项目中经常有这样的场景:程序启动时,有很多耗时的操作,比如加载图片,加载文件等等,而友好的界面应该是让主界面加载进来,这些耗时费劲的操作放在后台的线程中去执行,完全不影响主界面的加载速度。所以软件设计人员就想到了在程序启动时将这些耗时的操作放在线程,故而把这种初始化加载的方式形象的比作:“饥汉模式”。1.mian函数中实现饥汉模式初始化int main(int argc, char* argv[]){ QApplication a(arg
2020-12-27 17:45:30
210
原创 C++实现观察者模式
所谓观察者模式,个人理解就是一对多的对象之间的关系,多个对象就是观察者,下面写一个项目中用到的类似于观察者模式。1.写一个抽象的事件基类,暴露的函数写成虚函数,在继承该事件类中的子类中实现这些虚函数#ifndef IEVENT_H#define IEVENT_H#include <QString>class IEvent{public: virtual ~IEvent(){} virtual bool setCommand(QString cmd) = 0; //
2020-12-27 17:15:29
302
原创 C++实现单例模式
所谓单例模式,就是把一个类的的构造函数在其内部实现,并且只向外部暴露其实例化的函数,在程序的生命周期中只被实例化一次,这个类方便管理,代码如下:class BaseInfo{private: BaseInfo(){} static BaseInfo *pInstance;public: static BaseInfo * GetInstance();//只向外部暴露此接口};```cpp#include "baseinfo.h"BaseInfo* BaseInfo
2020-12-27 15:15:58
150
原创 设置系统热键
最近Qt项目中遇到一个这样的问题:主界面有暂停和停止两个功能按钮,但是程序在运行过程中鼠标是被程序控制的,所以想到设置快捷键来实现暂停和停止,但是Qt设置的按钮快捷键是需要按钮有获得焦点的,而在程序运行中,无法获得焦点。解决方案:调用Windows自带的ApI来实现快捷键。1.注册全局热键 // 注册全局热键 RegisterHotKey(HWND(this->winId()), GlobalAddAtomA("HTK_RUN"), MOD_CONTROL,
2020-12-27 14:57:05
513
原创 Qt程序打包发布
1.在VS中编译程序的release 版本2.找到编译生成的.exe文件,将其拷贝到将要发布的文件夹下3.从开始菜单打开 Qt 命令行,输入命令:cd /d E:\conductometer然后使用 Qt安装目录(如D:\Qt\Qt5.9.9\5.9.9\msvc2017_64\bin)的windeployqt 工具命令:D:\Qt\Qt5.9.9\5.9.9\msvc2017_64\bin\windeployqt ConductometerUi.exe4.执行完上述步骤就可到一些dll
2020-12-21 16:19:10
256
原创 Qt按钮设置快捷键
设置快捷键 //设置暂停快捷键 QAction* action = new QAction(this); action->setShortcut(tr("space"));//空格键为快捷键 this->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(on_pushButton_5_clicked()));设置快捷组合键 //设置停止快捷键 QActi
2020-11-25 11:08:40
1765
转载 VS2019登录不上?看这里!
编译神器VS2019提示三十天试用期已到,需要登录微软账号才能重新使用作者:鹊衔桥上月https://www.bilibili.com/read/cv8234774出处: bilibili
2020-11-20 15:04:59
10181
19
转载 CreateThread参数dwCreationFlags(启动选项)详解
function CreateThread( lpThreadAttributes: Pointer; dwStackSize: DWORD; lpStartAddress: TFNThreadStartRoutine; lpParameter: Pointer; dwCreationFlags: DWORD; {启动选项} var lpThreadId: DWORD): THandle; stdcall;...
2020-11-06 14:49:17
1621
转载 C++ CreateThread详解
function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; {堆栈大小} lpStartAddress: TFNThreadStartRoutine; {...
2020-11-06 14:39:09
6520
转载 如何转载优快云博客
在参考“如何快速转载优快云中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载优快云博客步骤和一些知识小笔记。 参考博客原址:http://blog.youkuaiyun.com/bolu1234/article/details/51867099 转载优快云博客步骤: 1.优快云博客页面右键,点击【检查】 点击检查后,页面右侧出现htm...
2020-11-05 17:40:32
114
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人