- 博客(71)
- 资源 (10)
- 收藏
- 关注
原创 Qt 判断是否在同一个线程
QThread::currentThread() 当前函数运行所在线程。this->thread() 对象当前所在为UI线程。// 判断是否在同一个线程。
2023-08-15 17:00:30
612
原创 QActoin绑定shortcut的触发条件和限制
QAction绑定快捷键时,快捷键的触发是有条件的,只有在action添加在一个widget上,并且widget是显示的状态,快捷键才能触发;此外如果仅仅绑定在右键菜单QMenu上,是不会触发快捷键的。to be continue:附上测试demo。
2023-07-19 10:36:47
170
原创 Qt 的MOC(Meta-Object Compiler)元编译器系统
需要注意的是,MOC元编译器系统会在构建过程中自动调用,将相关的源代码预处理为C++代码,以便支持上述功能。通常情况下,开发者不需要直接调用MOC,而是在使用Qt的相关功能时,由构建系统(如qmake、CMake等)自动触发MOC的执行。在Qt中,MOC(Meta-Object Compiler)元编译器系统用于处理一些与元对象相关的功能。在Qt的开发过程中,如果遇到需要使用上述功能的情况,确保在相关的类定义中添加必要的宏(如。等),以便让MOC生成所需的元对象代码,并在构建过程中自动处理。
2023-07-14 23:42:12
1533
2
原创 实现钉钉机器人-总结
搭建钉钉机器人的事先准备:钉钉开放文档,仔细查看开发必看内容和钉钉机器人栏目,这里主题是支持回调的机器人。1.公网域名,任何人都可以访问的域名;2.服务器出口ip,linux下运行机器人的,可以执行命令: 返回的就是出口ip,这个和linux ip地址是有差别的;个人搭建钉钉机器人还需要:1.自行在钉钉账号创建团队,按钉钉提示创建;2.钉钉开放文档 - 工具 - 有内网穿透工具,一般个人不会有公网域名,可以使用内网穿透工具进行调试;...
2023-07-13 17:18:17
266
原创 Qt 获取顶级窗口(top-level window)
在Qt中,可以使用 QWidget::window() 函数来获取窗口的顶级窗口(top-level window)。顶级窗口是指没有父窗口的窗口,通常是应用程序的主窗口或独立的对话框窗口。
2023-07-13 17:12:04
2159
2
原创 QString使用隐式共享(implicit sharing)机制
总结:QString使用隐式共享机制,允许多个QString对象共享相同的字符串数据块,通过写时复制来实现数据的共享和修改操作的效率。这种机制减少了内存使用和复制操作,提高了性能和效率。在Qt开发中,QString的隐式共享机制是一个重要的优化特性。QString使用了隐式共享(implicit sharing)机制,也被称为写时复制(copy-on-write)机制。这是Qt框架中许多类的一种优化技术。需要注意的是,在多线程环境下,隐式共享机制需要注意对数据块的访问和修改操作的同步,以确保线程安全性。
2023-07-12 23:40:10
440
原创 渲染效率优化 - LOD(Level of Detail)
Level of Detail(细节层次)通常简称为LOD,是一种在计算机图形学中用于优化渲染性能的技术。简单来说,LOD是一种用于动态减少或增加物体或场景细节的方法,以便在运行时更有效地使用计算机资源。在游戏中,LOD可以在保持游戏场景的外观不变的同时,根据物体或场景在相机中的和等因素动态调整物体或场景的细节程度,以达到更流畅的渲染效果。
2023-04-06 20:57:34
2055
原创 Qt QTextEdit 自动滚动内容/移动光标到最后一行
/移动光标到最后一行。QTextEdit往文本后添加内容超出视图,并不会自动滚动到最后,需要添加以下代码。
2023-04-03 20:55:47
3789
1
原创 c++ 成员初始化列表应用
c++类每个成员都可以在初始化列表中指定一个初始值,但对于const成员变量和引用成员变量,必须要在初始化列表中进行初始化,在其它地方会报编译错误;
2023-03-30 23:12:12
87
1
原创 Qt 实现3D字体,并字体始终朝向屏幕
基本思路:获取字体的轮廓,使用OpenGL轮廓绘制使用的类和api:QPainterPath,toSubpathPolygons;
2023-03-27 21:03:19
742
1
原创 c++ 智能指针和普通指针混用,自定义智能指针的删除器
一般情况下,我们在写代码时都是要么用智能指针,要么用普通指针,再离谱一点就是智能指针获取普通指针,再去做业务访问操作;还有一种情况就是,将原有的普通指针,在进行业务代码编写的过程中装载成智能指针,但执行完业务逻辑后,原有的普通指针却还在使用时,就会引发问题;
2023-03-26 23:06:59
427
原创 c++的四种智能指针
c++的四种智能指针智能指针:相较于普通指针,是其对普通指针进行了封装,利用c++语言特性,类的构造函数进行创建,类的析构函数进行释放;分别是:auto_ptr(c++ 11已弃用), shared_ptr, weak_ptr, unique_ptr。智能指针隶属于memory库1、auto_ptr(c++ 11及以后不推荐版本使用)一个auto_ptr对象,对所指向的内存具有唯一所有权;如果赋值给新的auto_ptr,原来的指针指向将变为未定义;// auto_ptr example#in
2023-03-23 23:12:52
218
1
原创 Qt QShortCut 快捷键 原理、实现和应用
QShortCut方式的快捷键有好几种使用方式:1.通过绑定QAction或QMenu的方式。QAction和QMenu都提供了setShortcut()接口;
2023-03-20 23:44:19
3773
1
原创 Qt show(), showNormal(), showMinimized(),showMaximized()之间的差别和用法,show()函数的核心流程
如果你在监控show过程中的事件,那么在updateLater事件前,应该是先处理QEvent::Polish、QResizeEvent,再处理showEvent事件;且show_helper()会有段代码sendPendingMoveAndResizeEvents();最终会在show_helper内部发送QUpdateLaterEvent时间,然后通过时间循环机制进行update()更新逻辑;代码路径:qtbase\src\widgets\kernel\qwidget.cpp。
2023-03-14 20:58:54
5455
1
原创 Qt框架中,QApplication和QCoreApplication怎么实现单例派生?
1.Qt的qApp方法是将传统的单例实现方法中的静态对象定义为静态成员,在系统启动最初便实例化QApplication。2.单例存在一个问题,不能保证退出main函数时,单例的释放顺序,容易造成依赖时序问题;3.所以单例的实例化最好是要明确知道其实例化所在的线程,一般都在主线程上是最安全的;
2023-02-24 20:35:51
349
1
原创 Qt框架中为什么使用了大量的xxPrivate数据类?
Qt框架中为什么使用了大量的xxPrivate数据类?这么做的目的是什么?(为了解决什么问题)
2023-02-24 20:24:49
359
原创 异或加密算法--简单快速的文本加密算法
思路:原理是用字节b对字节A异或两次结果还是A;算法对于exe、图片、视频加密很好用,可以只解密其中的某一部分字节,这样资料就损坏了;只要保证key不泄露,暴力破解其实也不好破解(有懂的欢迎评论区讨论);对同一文本加密两次会无效,实际项目需要添加已加密的标识。对于普通业务的文本资料混淆特别好用;
2023-02-24 19:55:42
312
原创 总结几种查找并打开QT lupdate、lrelease、Linguist等工具的方法
几种执行lupdate、lrelease、Linguist工具的方法
2020-10-03 11:02:32
5391
转载 MSYS2更换国内源
今天安装了Msys64,但是Msys64使用的国外源实在太慢,必须更新为国内源。目前测试过国内最快是清华大学的源。 我的安装路径为d:/msys64。为什么要安装在D盘,因为msys64需要不断更新数据和安装自己的软件,也就是说会占用越来越多的硬盘。 利用Windows资源管理器,打开D:\msys64\etc\pacman.d。在这个路径下有3个配置文件,分别为:mirrorlist.mingw32、mirrorlist.mingw64和mirrorlist....
2020-09-29 01:17:57
2872
1
python_3.1官方入门指南中文版
2017-12-15
深度学习Deep Learning 中文版
2017-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人