自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++的几大特性

C++ 是一种广泛使用的编程语言,它是 C 语言的扩展,增加了面向对象编程(OOP)的特性以及其他一些高级功能。这些特性共同构成了 C++ 强大的编程能力,使得 C++ 成为系统/应用软件、游戏开发、嵌入式系统、高性能计算等多个领域的首选语言。

2024-07-09 15:02:05 497

原创 计算二叉树的深度

/ 递归计算左子树和右子树的深度,取较大值加1(加上当前节点这一层)// 清理动态分配的内存(为了简单起见,这里没有完整展示内存释放代码)// 计算并输出二叉树的深度。// 创建一个简单的二叉树。// 递归函数来计算二叉树的深度。// 辅助函数来构建测试二叉树。// 创建测试二叉树。// 定义二叉树节点。

2024-06-30 15:05:17 334

原创 vtk渲染过程

此外,VTK还支持使用显卡加速来提高渲染效率,包括开启硬件加速、使用OpenGL渲染器、设置显卡缓存、使用着色器和纹理等。这些技术可以减少CPU和GPU之间的数据传输,提高渲染效率,从而实现更快的可视化体验。

2024-06-28 13:21:21 182

原创 如何技术选型?

技术选型是一个关键步骤,它决定了项目的长期成功和可维护性。

2024-06-24 16:24:10 265

原创 c++新技术

C++的新技术主要体现在其不断演进的新标准中,这些新标准为开发者提供了更多的工具和特性,使得C++成为一门现代化的高效编程语言。综上所述,C++的新技术主要体现在其不断演进的新标准中,这些新标准为开发者提供了更多的工具和特性,使得C++能够更好地适应现代软件开发的需求。

2024-06-19 10:40:22 339

原创 初始化窗口

"{ ""}\n"}"}"}"));

2024-06-17 16:05:20 185

原创 窗口信息保存

读取写入。

2024-06-15 23:19:41 144

原创 服务架构-25

2024-06-11 13:44:54 85

原创 目前常用的后端技术

在后端开发中,有多种技术和框架可供选择,具体取决于项目的需求、团队的技能和经验,以及组织的架构决策。

2024-06-11 11:35:12 742

原创 字符串的信号(SIGNAL)和槽(SLOT)的宏连接方式弊端

从 Qt 5 开始,Qt 官方推荐使用基于函数指针的新式信号和槽连接方式,而不再推荐使用基于字符串的 SIGNAL 和 SLOT 宏。:与类型安全性缺失相关,使用 SIGNAL 和 SLOT 宏连接信号和槽时,编译器无法在编译时检查连接的有效性。这限制了信号和槽的灵活性。因此,在 Qt 5 及以上版本中,建议使用基于函数指针的新式信号和槽连接方式来提高代码的类型安全性、可读性和可维护性。:虽然这通常不是主要问题,但在某些情况下,基于字符串的连接可能需要额外的运行时开销来解析信号和槽的字符串名称。

2024-06-07 10:38:21 149

原创 qt线程结束通知

或其子类来定义你的任务,你可以在任务完成时发出一个自定义信号。然后,在你的主线程或任何感兴趣的线程中,你可以连接这个信号到一个槽函数,从而知道任务何时完成。),你可以在适当的时机(如任务完成后)发出一个自定义事件,并在主线程中处理这个事件。本身不提供直接的线程结束监听机制,但你可以通过结合 Qt 的信号和槽机制或其他方法来实现这一功能。主要负责管理线程的创建、调度和复用,而不是直接跟踪每个任务的完成状态。虽然这不是直接监听线程结束状态的方法,但你可以通过检查。)本身并不直接提供监听单个线程结束状态的机制。

2024-06-06 15:45:16 328

原创 构造列表初始化和构造初始化区别

效率:从效率的角度来看,构造列表初始化通常比构造初始化更高效,因为它避免了不必要的构造和析构操作。适用场景:对于引用成员变量、const成员变量以及没有默认构造函数的自定义类型成员,必须使用构造列表初始化。而对于其他类型的成员变量,可以根据具体情况选择使用构造列表初始化或构造初始化。编程风格:为了保持代码的一致性和可读性,建议在可能的情况下尽量使用构造列表初始化。

2024-06-03 17:51:03 268

原创 修改vs的主题和字体方法

在 Visual Studio 中更改主题、字体、文本和辅助功能选项 | Microsoft Learn

2024-06-03 15:20:32 322

原创 moveToThread的原理

由于直接跨线程调用QObject的成员函数是不安全的,因此通常使用信号和槽来在新线程和原始线程之间传递信息。信号可以在任何线程中发出,而槽函数将在接收对象的线程关联性线程中执行。这并不意味着QObject本身会在那个线程中直接运行其成员函数,而是改变了该对象及其子对象的事件循环和线程关联性。:在Qt中,每个QObject都有一个与之关联的线程,这被称为该对象的线程关联性。当对象被创建时,它默认与其创建者的线程关联性相同(通常是主线程,即应用程序开始执行的线程)。每个线程都可以有自己的事件循环。

2024-05-30 16:50:56 318

原创 多态的好处

总之,多态是C++中一种强大的特性,它使得我们可以编写更加灵活、可扩展和易于维护的代码。通过使用多态,我们可以实现代码的复用、支持接口和抽象、简化系统复杂性,并支持多种设计模式。使用多态(Polymorphism)在C++中有多个重要的原因,这些原因使得多态成为面向对象编程中不可或缺的一部分。

2024-05-29 09:01:39 268

原创 STL的六大组件

STL(Standard Template Library,标准模板库)是C++的一个重要部分,它提供了许多容器、迭代器、算法等模板类,用于实现数据结构和算法。这六大组件共同构成了STL的核心框架,使得C++程序员能够更高效地编写出可重用、可扩展和可维护的代码。

2024-05-22 18:32:10 431

原创 std::map key是对象时需要重载小于号运算符

/ 声明一个 std::map,其 key 和 value 都是 MyClass 对象。// 重载 < 运算符以便 std::map 可以比较 MyClass 对象。// 这里假设 key 和 value 的 id 相同,仅作为示例。// 可以添加其他成员函数和运算符重载。// 遍历 map 并打印内容。// 插入 100 个对象。

2024-05-21 13:43:39 148

原创 什么是系统编程(System Programming)?

系统编程(System Programming)通常指的是编写与操作系统、设备驱动程序、系统工具、网络协议栈、文件系统等底层系统组件交互的程序。这类编程通常需要深入理解计算机体系结构、操作系统内部机制、硬件与软件的交互等。学习系统编程通常需要一定的计算机科学基础,包括数据结构与算法、计算机组成原理、操作系统原理等。此外,掌握一门或多门编程语言(如C、C++、Rust等)也是非常重要的。

2024-05-20 08:53:46 496

原创 为啥不能碰爱情?

需要注意的是,“不能碰爱情”并不意味着一个人永远不能或不应该谈恋爱。每个人的情况都是独特的,而且人的想法和情感也会随着时间和经历的变化而改变。如果一个人觉得自己准备好重新开始一段感情,那么他们完全有权利去追求自己的幸福。“不能碰爱情”可能源于多种原因,这些原因可能因个人经历、信念或生活情境而异。

2024-05-18 19:24:29 184

原创 Windows句柄(Handle)

在Windows操作系统中,句柄(Handle)是一个特殊的标识符,用于表示和操作各种系统资源,如文件、窗口、进程、线程、事件等。Windows句柄是一个整数值,通常由系统API函数在创建或打开一个资源时返回,并用于后续的操作。正确使用句柄是Windows编程中的重要一环,因为不正确地管理句柄可能会导致资源泄漏、安全问题或程序崩溃。:句柄隐藏了资源或对象的内部表示,使得开发者可以通过句柄来操作资源,而无需关心资源在内存中的具体位置或结构。只有拥有适当权限的进程才能通过句柄访问特定的资源。

2024-05-18 19:02:49 353

原创 UML(Unified Modeling Language)统一建模语言

它提供了一套丰富的图形化符号来描述系统的静态结构和动态行为,帮助开发人员、业务分析师和其他项目干系人更好地理解和交流系统的需求、设计和实现。UML的这些图通常不是单独使用的,而是根据项目的需要选择性地使用其中的几种或多种,以便全面地描述系统。此外,UML还支持对模型的层次结构进行描述,例如通过包(Package)将相关的元素组合在一起,或者通过子系统(Subsystem)来表示大型系统中的一部分。

2024-05-17 16:18:14 321

原创 std::function

是 C++ 标准库中的一个模板类,它提供了一种通用、多态的函数封装。你可以将任何可调用对象(如函数、lambda 表达式、函数对象等)赋值给。的主要优点是它允许你以一种类型安全的方式存储、复制和调用任何可调用对象,这使得回调和事件驱动编程变得更加容易。你可以将任何满足这个签名的可调用对象赋值给。也可以用于更复杂的签名,包括带有参数和返回值的函数。是一个模板实例,它表示一个不接受任何参数并返回。对象,然后像调用普通函数一样调用它。类型的变量,并通过这个变量来调用它。可以存储一个接受两个。的函数或可调用对象。

2024-05-17 14:56:12 186

原创 qt 动态布局的实现 方式

请注意,实现动态布局时需要考虑性能、内存管理和用户体验等因素。避免在界面更新时执行过多的计算或创建过多的控件,以确保应用程序的响应性和稳定性。动态布局指的是在运行时根据条件或用户交互动态地添加、删除或修改界面上的控件和它们的布局。在 Qt 中,实现动态布局通常涉及到对布局管理器(如。

2024-05-17 13:01:09 281

原创 qt事件过滤器

在 Qt 框架中,事件过滤器(Event Filter)是一种机制,允许一个对象(称为“过滤器对象”)拦截并处理发送到另一个对象(称为“被过滤对象”)的事件。事件过滤器对于处理跨多个对象或窗口的复杂事件逻辑特别有用。这个函数接收两个参数:一个指向被过滤事件的 QObject 的指针和一个 QEvent 对象。:接下来,你需要将过滤器对象安装到你想过滤其事件的 QObject 上。:首先,你需要一个 QObject 派生类的对象来作为事件过滤器。函数中,你可以检查事件类型并根据需要处理它们。

2024-05-17 12:52:10 275

原创 离屏渲染技术

这个过程首先会创建一个当前屏幕缓冲区以外的新缓存区,屏幕渲染会有一个上下文环境,离屏渲染的过程就是切换上下文环境,从当前屏幕切换到离屏,等结束以后又将上下文切换回来。此外,离屏缓存区本身就需要额外的空间,大量的离屏渲染可能造成内存过大的压力。离屏渲染产生的原因主要有两种:一是系统触发,当图层经过着色管道后产生的结果需要与另一个图层经过管道得到的结果再次进行计算、混合后产生特殊效果才能渲染到屏幕上时,GPU就需要额外开辟一个缓冲区保存这两次中间结果,这个缓冲区就称为离屏缓冲区;

2024-05-17 12:48:21 153

原创 C++ 中的右值引用(rvalue reference)主要解决了两个问题:

为了避免不必要的拷贝,程序员经常需要编写额外的代码来管理这些资源,如使用智能指针(std::auto_ptr,但在 C++11 中被废弃,取而代之的是 std::unique_ptr 和 std::shared_ptr)或手动管理资源。右值引用和 std::forward 函数的引入,允许我们编写一个通用的转发函数,该函数可以完美地将参数(无论是左值还是右值)转发给另一个函数,而不需要担心参数的值类别(lvalue 或 rvalue)。实现移动语义,以提高性能并减少不必要的资源复制。

2024-05-16 19:08:23 431

原创 c++单例模式

然而,直接使用模板来实现单例模式可能并不是最直接或最常见的方法,因为单例模式通常是为特定的类设计的。但是,你可以通过模板参数化单例模式来创建一个通用的单例类模板,这样你就可以为任何类创建单例了。在C++中,单例模式是一种创建对象的设计模式,该模式限制了一个类只能有一个实例,并提供了一个全局访问点来获取该实例。当你想确保一个类只有一个实例,并且提供一个全局访问点时,这种模式就很有用。但是,在多线程环境中,更常见的做法是使用更高效的线程安全实现,如饿汉式(在类定义时即创建实例)或使用C++11的。

2024-05-16 16:20:26 421

原创 Qt 的元对象系统

Qt 的元对象系统(Meta-Object System)是 Qt 框架中的一个核心组件,它提供了 Qt 对象之间的通信机制,特别是信号和槽(Signals and Slots)机制、属性(Properties)、反射(Reflection)和对象间通信的其他功能。QObject和。

2024-05-16 16:05:01 392

原创 C++中的泛型编程

C++中的泛型编程(Generic Programming)是一种编程范式,它允许程序员编写与类型无关的代码,这些代码可以在多种不同的数据类型上重用。泛型编程的主要目标是减少代码的重复,提高代码的可重用性和灵活性。C++提供了两种主要的泛型编程工具:模板(Templates)和STL(Standard Template Library,标准模板库)。

2024-05-16 16:02:25 291

原创 C++中的多态(Polymorphism)

C++中的多态(Polymorphism)是面向对象编程的三大特性之一,它允许使用父类类型的指针或引用来指向子类对象,并通过该指针或引用来调用子类中覆盖或重载的方法,从而实现一种通用的、可重用的程序设计。

2024-05-16 15:58:33 430

原创 Qt框架的核心思想

综上所述,Qt框架的核心思想主要体现在跨平台性、面向对象和模块化、信号和槽机制、模型/视图架构以及多线程技术等方面。这些思想使得Qt框架成为了一个功能强大、易于使用且高度可定制的软件开发框架。

2024-05-16 15:55:47 387

原创 现代C++编程思想

现代C++编程思想涵盖了多个方面,这些思想帮助开发者更有效地利用C++的特性和工具集,以编写出更高效、更安全、更易维护的代码。这些现代C++编程思想可以帮助开发者编写出更高效、更安全、更易维护的代码,并充分利用C++的强大功能。

2024-05-16 15:43:03 300

原创 1111111111

11111111111啊啊啊啊啊啊啊啊。

2024-05-12 20:04:54 386

原创 监听窗口状态变化

void EeoCustomNormalDialog::changeEvent(QEvent *event){ if (QEvent::WindowStateChange == event->type()) { QWindowStateChangeEvent *stateEvent = dynamic_cast<QWindowStateChangeEvent *>(event); if (stateEvent) { Qt::WindowSta

2023-05-25 17:16:35 941

原创 事件派发代码

【代码】事件派发代码。

2021-03-12 18:41:56 641

原创 关于QWidget上的子控件假死问题的解决方案

关于QWidget上的子控件假死问题的解决方案重写bool LeXueClient::event(QEvent* event)拦截 QEvent::WindowStateChange 事件获取窗口列表然后设置窗口属性 foreach(QWidget *widget, QApplication::allWidgets()) { WholeBodyScreenWidget * w = dynamic_cast <WholeBo...

2020-12-16 21:20:37 312

原创 qt 解析命令

for (int i = 1; i < args.size(); ++i) { const QByteArray arg = args.at(i).toUtf8(); if (arg.startsWith('-')) { if ("-volume" == arg) { if (i + 1 < args.count()) {...

2020-07-02 15:04:05 400

原创 程序员们平时都喜欢逛什么论坛呢?

程序员们平时都喜欢逛什么论坛呢?看到有人问程序员都喜欢逛哪些论坛,那我就来总结一下。0. GitHub — 开发者最最最重要的网站:https://github.com这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。1. Stack Overflow — 解决 bug 的社区:https://stackoverflow.com/开发过程中遇到什么 bug,上去搜一下,只要搜索的方式对,百分之 .

2020-05-25 17:36:58 210

原创 qt渐变的实现方法

qt渐变的实现方法 QLinearGradient gradient(QPointF(0, 0), QPointF(0, 1)); gradient.setColorAt(0.0, 0x3cc63c); gradient.setColorAt(1.0, 0x26f626); gradient.setCoordinateMode(QGradient::Obj...

2020-04-13 17:30:18 267

原创 QComboBox 样式表

QComboBox{padding-left:12px;border:1px solid #E0E4E5;color:#131313;font-family:微软雅黑;font-size:18px;line-height:14px;}QComboBox QAbstractItemView::item{height:30px;color:#131313;font-family:微软雅黑;font...

2020-03-30 15:43:57 469

软件开发工程简历社招简历

软件开发工程简历社招简历

2022-01-27

用qt实现的水印工具(QT&& C++)

水印的英文叫“watermark”,是欧洲人发明的,有700年的历史了。水印是在造纸过程中通过改变纸浆的密度而形成的,水印分为2种,让纸变厚而形成的水印叫“黑水印”,让纸变薄而形成的水印叫“白水印”,迎光透视时可以清晰看到有明暗纹理的图形、人像或文字。通常纸币、证件、证券、粮票等等,都采用此方式,以防止造假。

2019-04-22

空空如也

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

TA关注的人

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