键盘会跳舞
不积跬步,无以至千里
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Qt 状态机框架:The State Machine Framework (一)
Qt状态框架,广泛适用于串行、并行等混合复杂模式下的事件驱动状态框架开发原创 2024-01-16 15:57:41 · 1763 阅读 · 0 评论 -
Qt 状态机框架:The State Machine Framework (二)
Qt 并行状态等复杂状态演示示例原创 2024-01-17 11:36:55 · 1226 阅读 · 0 评论 -
为你的世界,开一扇任意门(上篇)
在【我的电脑】里开一扇门,助力每一个穿越梦原创 2024-07-31 15:53:45 · 4754 阅读 · 0 评论 -
为你的世界,开一扇任意门 (中篇)
在我的电脑,设备和驱动下,为自己的程序添加快速访问方法,提高产品逼格原创 2024-07-31 21:14:20 · 1163 阅读 · 0 评论 -
2024了,我不允许你还不会:Qt查看与调试源码
Qt源码调试筑基期原创 2024-01-08 16:25:17 · 2057 阅读 · 0 评论 -
随机数生成器
随机数生成模版原创 2024-04-22 16:45:35 · 370 阅读 · 0 评论 -
关于Qt和C++中的反射机制实现与运用(2)
看到一个很好的实例。这里就转载过来了。原文地址C++ 反射机制一.前言:Java有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其me...原创 2019-10-11 15:47:06 · 416 阅读 · 0 评论 -
让Qt项目变得简洁干净
作为有”洁癖“的Qter,当然要让Qt项目编译后也干干净净。影子构建什么是万万不可能用滴。那么,下面这几个在 *.pro文件中的宏,我分享给你???? :CONFIGS += no_debug_release # 不会生成debug 和 release 文件目录DESTDIR = $$PWD/./_build/bin # 指定编译最终文件的生成路径OBJECTS_DIR = $$PWD/./_build/obj # obj中间文件存放路径原创 2021-04-30 17:33:21 · 440 阅读 · 2 评论 -
Qt Utils : To-Do
Qt Creator自带的todo插件工具,真心舒爽,特别是对于我这种记不住三天前自己写的shit mountain的 渣渣CXY来讲,边撸代码边注释,快速查阅Task,非常重要。1、上效果图:2、工具使用1、勾选使用插件。重启Qt Creator生效。 2、可自定义设置To-Do选项。...原创 2020-11-14 19:16:00 · 911 阅读 · 0 评论 -
【温酒读Qt】:扒扒QObject(1)
QObject源码解读与赏析原创 2023-01-12 12:49:59 · 671 阅读 · 0 评论 -
【温酒读Qt】:扒扒QObject(2)—— Q_OBJECT的隐秘角落
探寻Q_OBJECT 的隐秘原创 2023-01-13 16:23:52 · 876 阅读 · 3 评论 -
【温酒读Qt】:扒扒QObject(3)——欲遮还羞的 QObjectPrivate
QObject浅析原创 2024-01-29 14:58:29 · 1410 阅读 · 0 评论 -
Qt 数据序列化—— QDataStream
QDataStream 数据序列化及反序列化 使用示例原创 2021-12-27 10:15:35 · 2491 阅读 · 0 评论 -
Qt6.2.3 QWebEngineView 咋就默认无痕浏览模式了?
Qt6.2.3 : QWebEngineView 取消无痕浏览模式原创 2022-03-13 16:03:26 · 5403 阅读 · 2 评论 -
Qt如何在程序中启动第三方程序?
我们在开发过程中,常常会在程序中调用和启动第三方程序。这里提供两种主要的方式。————————————————————————————————————————【方法一】 通过Qt自动的类型QProcess来启动第三方进程1、 阻塞启动方式。 QProcess* p_com2tcp = new QProcess; QString strpath = qApp-&...原创 2019-09-19 10:43:17 · 2056 阅读 · 0 评论 -
Qt 程序添加管理员权限的几种方法
一、项目中配置1. mingw编译器在pro工程文件中加入RC_FILE=main.rcrc文件,之前一篇博客中为程序增加图标也用到此文件,没错!可以为程序添加iconmain.rcIDI_ICON1 ICON DISCARDABLE "./res/logo.ico" 1 24 uac.manifest第一行是为程序添加icon的;第二行是增加权限,注意是man...原创 2020-03-12 19:28:41 · 4858 阅读 · 0 评论 -
QLabel中设置背景图片的3种方法
// [1] 图片不重复,可自由缩放 ui->label->setStyleSheet("QLabel{" "border-image:url(:/images/bd.png) 4 4 4 4 stretch stretch;" "}"); /...原创 2020-02-16 11:58:13 · 21174 阅读 · 0 评论 -
Qt :设置应用的图标
设置应用程序图标原创 2024-04-19 16:57:09 · 302 阅读 · 0 评论 -
Qt之图形视图框架
简述图形视图(Graphics View)提供了一个平台,用于大量自定义2D图元的管理与交互,并提供了一个视图部件(view widget)来显示可以缩放和旋转的图元。框架包括一个事件传播架构,支持场景(Scene)中的图元(Item)进行精确的双精度交互功能。图元可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。图形视图使用一个BSP(Binary Space ...原创 2019-08-30 17:15:52 · 331 阅读 · 0 评论 -
Qt设置/取消应用程序开机自启动
在编码过程中,提供用户设置和取消开机自启动的功能是很常见的。下面的demo经过验证可行。记录之。#include <QMessageBox>#include <iostream>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <tchar....原创 2019-09-24 10:10:10 · 1238 阅读 · 0 评论 -
Qt如何编写生成后事件
分享一个实用的Qt后事件示例原创 2024-04-16 11:19:34 · 662 阅读 · 0 评论 -
Qt软件打包技术--基于实际项目开发
最近一直忙于独立的项目开发,有段时间没有上csdn了。昨天看到有朋友留言关于软件打包的问题。现在给大家分享一个我总结的软件打包技术文章。水平不高,存在错误之处请不吝指正。不过可以保证的是,文中所有,皆是实际项目总结,拿过去稍微修改下大家就可以用的了。 首先,我们从大家最感兴趣的打包发布来介绍起。毕竟,制作一个可以安装的程序还是挺令人感到兴奋的一件事情。这里软件的打包我着重向大家介绍两个打...原创 2018-11-30 09:04:48 · 933 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(一)
基于Qt属性系统的属性编辑工具,使用MVC模式,适用于各种需要属性配置交互的业务场景原创 2023-12-22 15:23:40 · 1657 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(二)
qt属性编辑器原创 2023-12-22 17:01:17 · 608 阅读 · 0 评论 -
Qt通用属性工具:随心定义,随时可见(三)
Qt对象属性编辑器原创 2024-01-18 14:27:49 · 871 阅读 · 0 评论 -
Qt中的写实复制与隐式共享技术(1)
在Qt中,隐式共享()技术是一种优化技术,用于在多个对象共享相同数据时减少内存的复制。它通过引用计数和写时复制()来实现。当一个对象被复制时,实际上只有引用计数会增加,直到某个对象试图修改数据,此时才会进行实际的复制。Qt中的许多类(如QStringQVectorQImage等)都使用了隐式共享技术。以下是一个详细的解释和代码示例,展示如何在Qt中实现隐式共享。原创 2024-07-16 08:09:16 · 214 阅读 · 0 评论 -
Qt中的写实复制与隐式共享技术(2)
隐式共享浅析原创 2024-01-08 10:49:42 · 859 阅读 · 0 评论 -
Qt 属性系统(The Property System )
一、什么是Qt属性系统Qt提供了一个复杂的属性系统,类似于一些编译器供应商提供的属性系统。但是,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译器特性,如_property属性或[property]。QT解决方案与任何标准的C++编译器在每个平台QT支持下都有作用。它基于元对象系统,也通过信号和槽提供对象间通信。二、属性声明需要使用在继承于QObject的子类中使用Q_PROPERTY()宏来声明某个属性。详细格式如下: Q_PROPERTY(type name ...原创 2021-05-05 18:01:16 · 1257 阅读 · 0 评论 -
Qt源码分析:Qt程序是怎么运行起来的?
Qt 源码分析入门篇原创 2024-01-08 17:42:22 · 1409 阅读 · 0 评论 -
Qt中的C++技术 学习总结:(1)主类模板与特化类模板
一个类模板可以具有一个或者多个模板参数。当这组模板参数被设定为一组具体类型时,实例化后的类就能够处理这组具体类型的数据。模板参数可以被设定为任意类型,使得这个类模板可以处理任意类型的数据,这是泛型编程思想所要达到的目标。然而,在某些场合下,当模板参数被设定为某些特定类型时,我们希望实例化后的类具有特定的行为,这就需要使用类模板特化技术。//mystack.h#ifndef MYST...原创 2020-03-02 23:09:03 · 447 阅读 · 0 评论 -
Qt中的C++技术 学习总结:(2)Traits技术封装
Traits技术以一个统一的编程接口,描述各种数据类型的基本特征。例如,对于基本类型float,如果将这种类型所能表示的最大浮点数写为以2为底的指数形式,其指数部分的最大值为128。在float.h中这个常量被定义为FLT_MAX_EXP。而对于基本类型double,这个最大值为1024,被定义为DBL_MAX_EXP。类似地,float和double所能够表示的最小正数也不一致,分别被定...原创 2020-03-02 23:17:54 · 467 阅读 · 0 评论 -
Qt中的C++技术 学习总结:(3)类型分类(Type Classification)技术
设一个模板具有模板参数T,表示C++中的某种类型。有些情况下,随着T所取类型的不同,该模板会做不同的处理。在设计该模板时,我们需要了解T的具体信息。在编写一个具有模板参数T的类模板时,有时需要了解T所取类型的具体信息,以做不同的处理。这是一个棘手的问题,因为C++语言只有很少几个运算符能够处理“类型”:sizeof、dynamic_cast以及typeid。和我们想要获取的类型信息相...原创 2020-03-03 09:57:23 · 633 阅读 · 0 评论 -
Qt和C++中的反射机制实现与运用(1)
一、Qt的反射机制首先我们大致理解下反射机制的意义。对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为反射机制。C++语言本来是不支持反射机制的,不过在Qt框架中,实现了一套自己的反射机制。具体实现:(1)继承QObject的类(2)在该类中需要做反射的那个函数前写一个宏Q_INVOKABL...原创 2019-10-11 15:31:44 · 1122 阅读 · 0 评论 -
Qt和C++中的反射机制实现与运用(2)
enum DockOption { AnimatedDocks = 0x01, AllowNestedDocks = 0x02, AllowTabbedDocks = 0x04, ForceTabbedDocks = 0x08, // implies AllowTabbedDocks, !AllowNestedDocks VerticalTabs = 0x10, // implies AllowTabbed...原创 2021-06-20 17:31:49 · 1348 阅读 · 1 评论 -
Qt‘s 撤销框架(Qt‘s Undo Framework)
Qt 撤销框架原创 2024-01-23 10:39:08 · 569 阅读 · 0 评论 -
Qt :浅谈在大型项目中使用信号管理器
在Qt大型项目中使用信号管理器原创 2024-04-29 15:12:02 · 557 阅读 · 0 评论 -
Qt : d指针和q指针?
在Qt的源码中,我们看到大量的Q_D() 和Q_P() 宏的调用,查看代码时在一定程度上增加了复杂度。先看看两个宏的原型:#define Q_D(Class) Class##Private * const d = d_func() #define Q_Q(Class) Class * const q = q_func() ...原创 2021-06-20 15:11:55 · 3249 阅读 · 3 评论 -
Qt智能指针之QScopedPointer
内存释放的问题是C++中比较头疼的问题,合理的使用智能指针能有效的帮助我们减少忘记释放内存,导致的内存泄露问题。本文以Qt中的QScopedPointer为例,通过讲解其用法,从源码深度剖析其实现方式。QScopedPointer的使用原理比较简单,实际上就是通过QScopedPointer类型,记录申请的某一片内存空间的地址,在QScopedPointer类型变量生命周期结束时,会自动调用QScopedPointer的析构函数,从而达到自动释放堆上申请的内存空间的目的。原创 2023-01-06 14:52:38 · 2933 阅读 · 0 评论 -
QScopedValueRollback —— 实现变量值的回滚
实现变量值的自动回滚原创 2023-01-05 10:30:57 · 262 阅读 · 0 评论 -
QScopeGuard —— 定义函数return前执行的回调方法
当函数执行return退出前,会先释放函数栈上的局部变量,QScopeGuard局部变量执行析构方法,在析构中判断注册的回调函数是否执行(默认为执行),达到自动return前自动执行回调函数的目的~有时,我们的业务比上述伪代码中的业务逻辑可能更加复杂,每次在return在前我们又不得执行 do something before return 的方法。在编写复杂的方法时,我们常常会不得不在多处执行业务逻辑,并且某些异常会提前return。那咱么整理下,搞成个C++通用的类。的函数模板,用于注册回调函数。原创 2023-01-03 11:26:54 · 561 阅读 · 0 评论