自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

原创 Qt信号槽的回调机制

问:Qt强大的地方在哪里?答:跨平台、信号槽。。。问:信号槽是什么?答:回调函数问:怎么个回调法子答:。。。

2024-06-14 12:15:37 999

原创 当C++的static遇上了继承

这是因为我们是定义A了来指向new出来的B, 那么 b1->GetCount()的时候其实是调用了类A的GetCount()。毫不意外,因为B构造的时候就会调用A的构造函数,所以,A的Count_为8,B的Count_为5.3、怎么样来获取实例化的B的数量呢?其实再增加一个virtual就好了。比如我们想要统计下当前类被实例化了多少次,我们通常会这么写。1、现在做下小修改,让B继承自A,结果会发生变化吗?2、再次修改,用new的方式创建。输出理所当然的是 3 和 5。结果又成了熟悉的8、 5。

2024-06-07 20:42:46 355

原创 多参数函数或宏定义

用于传递多参数//调用测试输出结果:100 99.980003 abcdefg 没有#100, 99.98f, "abcdefg" 带有一个# (把参数通过逗号连接成一个字符串)100 99.980003 abcdefg 带有两个#//调用测试 无参数//低版本的会报错//编译报错//正常编译,正常打印。

2024-01-07 11:35:25 585

原创 MySql交叉编译的CMake配置

本来-DCMAKE_ENABLE_C++11=1就可以正常打开C++11了,但是结果发现没应用上;就又加后面两个选项后,才发现C++11确实加上了。有点奇怪,但是每次编译都要花费很长时间,就不想去追究了,索性都加上。编译过程中又会遇到很多奇奇怪怪的问题,但是本博主太懒了不想罗列。反正大多都是交叉编译出来的可执行文件不能在宿主机上执行之类的,所以在交叉编译前要先用宿主机编译一遍,这样的话就得到了本地可执行的文件了。都是配置C++11,为什么要加上两个呢?

2023-03-24 17:30:35 178

原创 Windows锁屏实现

2、上面的HOOK却屏蔽不了Ctrl+Alt+Del,可以挂起winlogon.exe进程,强制它不处理Ctrl+Alt+Del事件。以上,一个简单的锁屏程序就完成了,后面我们就可以再加些为所欲为的功能了,比如开机锁屏,计时锁屏、密码解锁等等。6、第一步的时候保留了一个回车键用来退出锁屏,进程退出的时候注意要取消安装的钩子和恢复winlogon.exe进程。5、启动的时候如果任务管理器在,关掉任务管理器,防止上面的设置失效。1、屏蔽键盘鼠标,利用HOOK封锁键盘和鼠标。

2023-01-20 09:15:35 626

原创 信号量和共享内存的使用

用信号量和共享内存实现进程间的阻塞式的函数调用的一个示例

2022-12-20 13:55:22 183

原创 C++正则表达式

C++正则表达式常用函数总结

2022-05-22 19:17:10 1039

原创 QSettings设置编码后依然乱码

QSettings set("config.ini", QSettings::IniFormat); set.setIniCodec("GB2312"); set.setValue("TEST/val", "你好"); QSettings set1("config.ini", QSettings::IniFormat); set1.setIniCodec("GB2312"); qDebug() << set1.value("CONFIG/name").toString();配..

2022-04-25 17:28:11 1879

原创 Windows下QtCreator不能切换中文输入法

打开QtCreator发现中文输入法不灵了,怎么都切不到中文输入法上,起先觉得是输入法的问题,果断又重新装了一个输入法,发现还是不行。。。后来一个环境变量 QT_IM_MODULE 引起了我的注意,值看起来是个无效值。删除这个环境变量后再重新打开QtCreator一切正常,解决!...

2022-03-28 10:51:28 1851 4

原创 qDebug重定向(非常好用)

/*FileLog.h*/#ifndef FILELOG_H#define FILELOG_H#include <QObject>class FileLog : public QObject{ Q_OBJECTpublic: explicit FileLog(QObject *parent = nullptr); void installMessageHandler(); void uninstallMessageHandler();};.

2022-01-21 23:13:20 1184

原创 QTableView的自定义样式和代理

先上张效果图就不贴完整代码了,只把具体的实现代码给弄上来,相信一看就那啥://设置QTableView表头高度和大小时,必须设置section的first,middle,last和设置字体颜色,不然设置大小不生效 QString strStyle = R"( QHeaderView::section:first, QHeaderView::section:last, QHeaderView::section:middle

2022-01-19 21:05:17 3415 4

原创 QTextEdit拖动文本内容区使其滚动

借助QScroller类很容易实现。 //如果直接是ui.textEdit也可以,但是滚动条就失效了。所以需要保持滚动条的作用时就要使用viewport QScroller* scroller = QScroller::scroller(ui.textEdit->viewport()); //默认是触摸事件触发,这里改成鼠标事件触发。 scroller->grabGesture(ui.textEdit->viewport(), QScroller::LeftMouseB.

2021-09-10 10:18:31 1434 3

原创 Qt简单封装的sqlite数据库操作、导出Excel等等(复制粘贴直接可用,大概吧)

导出Excel封装类#pragma once#include <QStringList>#include <QVariant>#include <QWidget>class Export{public: Export(const QVariant& content,int row,int col,QWidget* parent = nullptr); void ExportExcel(); //线程中导出excel void SetEx

2021-07-14 17:03:32 1795

原创 QTimer的跨线程启动问题

记录一个跨线程启动QTimer的问题。问题是个小问题,但是不注意的话就不是知道为啥咱的计时器它咋就坏了呢。先看个示例代码:(为简洁 部分省略[手动狗头])//*.h//主窗口类class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0); ~Dialog(); void startTimer();public slots: void s

2021-07-14 16:44:23 1661

原创 内存环形队列

实现思路,开辟一段连续的内存,通过head和tail记录有效内存的位置。添加数据时head前进,读取数据时tail前进。需要注意的是,head记录指向的是下一个位置且不存储值,而tail存储值。上一张图帮助理解:实现://_H#ifndef __BUFFER_QUEUE_H__#define __BUFFER_QUEUE_H__typedef struct buffer_queue{ unsigned int head; //head所指向的位置不存储值

2021-04-29 16:48:40 213

原创 线程管理池

线程多了,就需要一个线程管理池,线程管理池的工作就是负责开启线程,负责退出线程。/*线程管理池实现 * *参考开源代码iiod的实现 */#include <errno.h>#include <pthread.h>#include <signal.h>#include <stdint.h>#include <stdlib.h>#include <sys/eventfd.h>#include <unis

2021-04-29 15:32:00 100

原创 CMakeLists.txt入门使用

#define WIDTH_COLOR#ifdef WIDTH_COLOR #define COLOR_DEBUG "\e[0;32m" #define COLOR_INFO "\e[0;38m" #define COLOR_WARNING "\e[01;35m" #define COLOR_ERROR "\e[01;31m" #define COLOR_END "\e[0m" #define DEBUG_LOG(str,...) \ .

2021-04-22 14:39:02 337

转载 COM组件的创建与调用以及注册表位置查找示例

详细的创建过程和调用可以参考https://blog.csdn.net/weixin_30451709/article/details/98574314?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2其中的注册组件regSvr32 Debug\$(TargetName).dll 较关键现在简单来看看注册成功后,系统到底是把东西注册到哪里去了呢?COM组件生成成功后,我们在.idl的文件中能看到这样的东西// ..

2020-06-06 11:48:54 5572

原创 Qt实现简单线程池

Qt本身就具备线程池类QThreadPool,使用起来也很方便,不过现在我们用QThread来做一个自己的线程池。创建用来管理线程池的类ThreadPool,在这里它发挥着管家的职责,掌管公共资源的使用。由于管理任务的队列、锁以及条件变量都声明了私有,所以给WorkThread声明为友元类,以便其能访问。为了简单,我们只定义了一个构造函数以及三个函数: ThreadPool(int count,QObject*parent=nullptr) 其中count表示要在线程池中创建多少个子线程

2020-06-04 21:05:41 2264 2

原创 Qt学习之路---线程启动与关闭

    在编程当中遇到了一些问题:到底该使用哪种方式去创建线程呢?    Qt创建线程有两种方式。第一种继承QThread重写run函数,需要注意的是只有run函数才在线程中执行,其它函数被父类直接调用时,它执行所在的线程还是在父类所在的线程中。第二种继承QObject使用moveToThread启动线程,这也是官方推荐的写法,比较灵活通用。第一种 继承QThreadclass ThreadTes...

2018-07-08 19:45:23 28890 7

C++实现仿qt信号槽运行机制过程

C++实现仿qt信号槽运行机制过程

2024-06-14

Windows下利用HOOK和进程挂起实现的桌面锁屏

Windows下利用HOOK和进程挂起实现的桌面锁屏

2023-01-20

仿360功能大全界面实现

仿360功能大全界面实现

2021-06-23

Qt实现滤镜效果.zip

使用QImage实现多个常用滤镜效果,色相、反相、调亮、调暗、黑白、灰度、黑灰白等滤镜。图片效果以QLabel形式展示

2020-09-19

QTreeView实现树节点之间拖拽.zip

自定义的QTreeView+Model实现树节点内部之间拖拽效果,同时实现通过点击按钮的方式向QTreeView中添加节点。

2020-09-19

使用GDAL创建大像素图.zip

使用GDAL库通过以一张1920x1200的背景图片重复排列模拟小图片合成大图的场景,最终生成19200x12000的大像素图,而且完全可实现合成192000x120000超大图片。

2020-09-19

ComDemo.zip

COM组件的创建、注册和调用。在示例中创建了一个HelloWorld的测试类,类中创建了一个函数Show,作用是弹窗口提示。注册成功后,调用程序调用测试

2020-06-06

ThreadPool.zip

使用QThread实现的一个简单线程池,主要实现了创建线程池中的线程数,添加任务队列,销毁线程池等必备操作。其中添加任务以函数对象的方式传递,实现两个数的相加,简单示例了统一调用接口而不用考虑参数带来的累赘问题

2020-06-04

空空如也

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

TA关注的人

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