- 博客(122)
- 收藏
- 关注
原创 【Qt mainwindow 】窗口在启动时自动调整为适应屏幕大小
本文介绍了如何在Qt中实现窗口自动适应屏幕大小并禁止用户调整窗口大小。首先,通过QGuiApplication::primaryScreen()->geometry()获取屏幕分辨率,然后使用resize()将窗口大小设置为屏幕尺寸。接着,通过setFixedSize()固定窗口大小,防止用户调整。此外,文章还提供了减去窗口边框大小的示例代码,以适应带边框的窗口需求。最后,提到全屏显示与固定窗口大小的区别,并建议使用setWindowState(Qt::WindowFullScreen)实现全屏效果。
2025-05-18 08:45:00
348
原创 【OpenCV cv::parallel_for_并行化循环】原理、用法、其它类似函数
OpenCV 中的 `cv::parallel_for_` 是用于实现 **并行化循环** 的核心工具,它通过多线程加速计算密集型任务。
2025-05-18 08:30:00
1052
原创 【软考 8T(n / 2)+n^2的时间复杂度如何计算?】
通过主定理、递归树法和递推展开法,我们分析了递归式 ( T(n) = 8T(n/2) + n^2 ) 的时间复杂度。主定理分析表明,由于 ( f(n) = n^2 ) 与 ( n^{\log_b a} = n^3 ) 的关系,符合主定理的第一种情况,得出 ( T(n) = \Theta(n^3) )。递归树法进一步验证了这一结论,通过计算每层递归的工作量和叶子节点的工作量,总时间复杂度同样为 ( \Theta(n^3) )。递推式展开法也支持这一结果。因此,该递归式的时间复杂度为 ( \boxed{\The
2025-05-18 08:15:00
433
原创 【软考 程序流程图的测试方法】McCabe度量法计算环路复杂度
程序流程图的测试方法主要用于验证代码逻辑的完整性和正确性,属于白盒测试范畴。核心方法包括: 基本路径测试:通过控制流图生成覆盖所有独立路径的测试用例,计算环路复杂度以确定测试用例数量。 条件覆盖测试:确保每个逻辑条件的真/假结果均被覆盖,设计用例覆盖所有可能组合。 循环测试:验证循环边界和迭代逻辑,测试零次、单次、多次及最大次数循环。 分支覆盖测试:覆盖所有分支,确保每个分支至少执行一次。 McCabe度量法用于计算环路复杂度,通过控制流图或判定节点数快速评估代码复杂度,指导测试用例设计。复杂度值越高,代码
2025-05-17 19:15:00
516
原创 【软考 McCabe度量法】
McCabe度量法是由Thomas McCabe提出的一种用于衡量程序模块环路复杂性的软件度量方法。它通过分析代码的控制流结构来评估程序的复杂度,帮助开发者识别难以维护或测试风险较高的代码区域。核心原理包括环路复杂度反映程序中的独立路径数量,以及控制流图的结构决定复杂度。计算环路复杂度有三种方法:基于控制流图的公式、基于决策点的公式和基于闭合区域的公式。环路复杂度的意义在于指导测试用例设计和代码审查,推荐值范围为1-10(简单模块)、10-20(中等复杂度)和>20(高风险代码)。通过掌握McCabe
2025-05-17 19:00:00
530
原创 【软考 霍夫曼编码的文档压缩比】
霍夫曼编码通过为高频字符分配短码来优化文档压缩。压缩比计算公式为压缩前总比特数除以压缩后总比特数加编码表存储开销。计算步骤包括构建霍夫曼树、生成编码表、计算压缩前后比特数。案例中,压缩比约为2.24:1或44.6%,若忽略编码表开销,则压缩比约为3.95:1或25.3%。关键影响因素包括字符频率分布、编码表存储方式和文档规模。实际应用中需优化二进制存储、使用动态编码,并与其他算法结合以提升压缩效果。霍夫曼编码通过高效分配编码显著降低存储空间,实际压缩比需综合考虑字符分布和编码表开销。
2025-05-16 19:30:00
479
原创 【C++/Qt shared_ptr 与 线程池】合作使用案例
本案例展示了如何在 Qt 线程池中使用 std::shared_ptr 管理多线程任务资源,避免内存泄漏。通过自定义任务类 MyTask 继承 QRunnable,禁用自动删除功能,确保任务对象由 shared_ptr 管理生命周期。主窗口类 MainWindow 使用 QThreadPool 提交任务,并通过信号槽机制实现跨线程通信,确保任务完成后资源自动释放。关键机制包括禁用自动删除、shared_ptr 管理生命周期、跨线程信号槽通信以及 Lambda 捕获 shared_ptr 确保任务执行期间对象
2025-05-16 19:15:00
411
原创 【Qt 信号与槽使用自定义类型】出现 --错误:LNK2001 无法解析的外部符号
此方法适用于所有需要跨线程或队列传递非Qt内置类型的场景。通过注册自定义类型、确保信号槽参数一致,并正确配置项目,可解决。或类的构造函数中),注册。
2025-04-13 08:15:00
283
原创 【数据结构 哈夫曼树】构建步骤、案例
哈夫曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度(WPL)最短的树。它广泛应用于数据压缩(如哈夫曼编码),通过为高频字符分配短编码、低频字符分配长编码,实现高效压缩。假设字符A、B、C、D的频率分别为5、9、12、13。通过构造哈夫曼树,可高效实现数据的无损压缩,平衡存储与传输效率。:构造一棵WPL最小的二叉树。
2025-04-12 08:30:00
503
原创 【OpenCV 中的坐标还原操作】仿射、透视、ROI
在 OpenCV 中,通常指将经过变换(如旋转、缩放、仿射/透视变换)后的图像中的坐标点,反向映射回原始图像中的对应位置。这在目标检测、图像配准、几何校正等场景中非常关键。坐标还原本质是。若对图像应用了某种变换矩阵 ( M ),则还原坐标需使用其逆矩阵 ( M^{-1} )。
2025-04-12 08:15:00
1898
原创 【Qt 为什么QMap中设置参数类型为 int[4] 会报错】错误 C2090 函数返回数组
在 C++ 中,int[4]QMap,因为它们违反了 C++ 的类型规则和模板要求。
2025-04-12 08:00:00
432
原创 【OpenCV 对图片做旋转操作】仿射=旋转+平移+缩放+剪切
快速实现 90°、180°、270° 的旋转(无需手动计算矩阵)。OpenCV 提供了多种函数用于图像的旋转操作,主要分为。旋转可能导致图像边缘出现黑色填充。根据需求选择合适的函数,并通过调整参数优化旋转效果。生成旋转矩阵,用于定义旋转参数。应用旋转矩阵对图像进行仿射变换。
2025-04-11 19:15:00
515
原创 【OpenCV 轮廓检测与轮廓筛选】
在OpenCV中,轮廓检测和轮廓筛选是图像处理中常用的技术,用于识别和分析图像中物体的形状。通过灵活组合轮廓特征(面积、形状、凸性等),可以高效筛选出符合需求的轮廓,为后续处理提供基础。轮廓检测通常在二值图像上进行,因此需要将原图转换为灰度图并进行阈值处理或边缘检测。使用多边形近似判断轮廓是否为简单几何形状。通过外接矩形的长宽比筛选特定形状的轮廓。该函数返回轮廓的坐标点和层级关系。过滤掉面积过小或过大的轮廓。
2025-04-11 19:00:00
496
原创 【OpenCV 形态学处理-闭运算】先膨胀再腐蚀
闭运算的数学表达式为:\text{闭运算} = \text{膨胀} \circ \text{腐蚀}即先对图像进行。
2025-03-16 08:30:00
1304
原创 【OpenCV 二值化cv::threshold 函数】参数、作用、应用场景
是 OpenCV 中用于的核心函数,主要用于将灰度图像根据设定的阈值转换为二值图像或进行其他形式的像素分类。【二值化:通过阈值给像素分区间】srccv::Matdstcv::Matsrcthreshdoublemaxvaldoublemaxvaltypeint):生成黑白图像,突出目标区域。):保留高亮度区域的细节,抑制低亮度区域。或):自动计算最佳阈值,适合光照不均匀的图像。Canny。
2025-03-16 08:15:00
574
原创 【计算机网络通信 MQTT 】MQTT代理:原理、作用与实现
MQTT代理是MQTT通信架构中的核心组件,它负责接收、存储和转发消息。它确保消息从发布者正确地传递到订阅者,支持解耦和异步通信。MQTT代理可以是运行在一台计算机上的软件服务,也可以是一个分布式系统,甚至可以是云平台上的托管服务。选择合适的MQTT代理实现和部署方式,取决于你的具体需求和应用场景。
2025-03-15 08:45:00
973
原创 【C/C++ Python】python 就这么把 C++ 几千行代码实现的功能给封装到一个接口里面啦!!!
当代开发常见模式是:Python 作为顶层胶水,调用底层 C/C++/Rust 实现的核心模块。既保持了开发效率,又兼顾了执行性能。像 TensorFlow/PyTorch 等框架正是这种架构的典范。如果你是一位 C++ 开发者,最近在接触 python 的话,很可能产生类似的想法~这正是 Python 的哲学魅力所在。最近在学习机器学习,同时产生了一些对于 C++ 和 python 的看法~类似功能用 C++ 需要处理套接字、线程、协议解析等底层细节。
2025-03-15 08:15:00
423
原创 【计算机网络通信 AMQP】使用 Qt 调用 qamqp 库进行 AMQP 通信
以下是一个使用 Qt 实现 AMQP 通信的代码示例。为了实现这个功能,我们可以使用qamqp库,它是一个基于 Qt 的 AMQP 客户端库。首先,你需要将qamqp库添加到你的 Qt 项目中,可以通过qmake或CMake进行配置。
2025-03-14 20:15:00
483
原创 【计算机网络通信 MQTT和AMQP的原理及应用场景、优缺点】
MQTT(Message Queuing Telemetry Transport)和AMQP(Advanced Message Queuing Protocol)都是常用的消息中间件协议,以下是它们的原理、应用场景、优缺点介绍:
2025-03-14 20:00:00
320
原创 【OpenCV (/逆)离散傅里叶变换】
cv2.dft:将图像从空间域转换到频率域,输出复数结果。cv2.idft:将图像从频率域转换回空间域,可以输出实部。这些函数在图像处理中非常有用,特别是在进行频率域分析和滤波时。通过这些变换,可以实现图像的平滑、锐化、去噪等操作。
2025-02-16 09:00:00
904
原创 【OpenCV 常用功能汇总】不要因为被神化而不敢触碰
OpenCV(Open Source Computer Vision Library)是一个强大的计算机视觉库,广泛应用于图像处理、视频分析、特征检测、机器学习等领域。
2025-02-16 08:45:00
494
原创 【Qt 与std::string相比有许多更强大的字符处理功能】
Qt的QString类提供了许多强大的字符串处理功能,这些功能在某些方面比标准C++库中的更为丰富和便捷。以下是QString相对于。
2025-02-15 09:30:00
325
原创 【Qt Qt的信号和槽传递机制 如何支持 std库包含的数据类型】
对于一些特定的标准库类型,你可以通过宏和函数将其注册为Qt的元类型系统支持的类型。// 应用程序逻辑 return app . exec();} // 然后可以在信号和槽中使用std::vector<int>// 应用程序逻辑 return app . exec();} // 然后可以在信号和槽中使用std::vector<int>int>>// 应用程序逻辑// 然后可以在信号和槽中使用std::vector<int>
2025-02-15 09:15:00
210
原创 【Qt Qt的信号和槽传递机制支持的数据格式】
自定义类:任何具有Q_OBJECT宏的QObject子类都可以通过信号和槽传递。对于非QObject子类的自定义类型,需要使用宏进行注册,然后使用函数在应用程序中注册该类型,以便Qt的元对象系统能够识别和处理它。枚举类型:需要使用Q_ENUM宏在类中声明枚举类型,以便Qt的元对象系统能够识别和处理它。
2025-02-15 09:00:00
294
原创 【Qt 比较常用的字符串处理函数】查找、比较、转换、截取、替换、插入、删除、格式化、分割、比较排序
在Qt中,QString类提供了许多用于字符串处理的函数。
2025-02-14 20:15:00
874
原创 【Qt 为什么 unique_ptr<ClassExample> 和直接声明的 ClassExample对象,connect时的表现形式不一样?】
和直接声明的对象在 Qt 中的行为差异主要源于它们对对象生命周期和所有权管理的不同方式。时,需要特别注意对象的生命周期和所有权转移,以确保与 Qt 的信号和槽机制正确配合。
2025-02-14 20:00:00
207
原创 【python 正则表达式:太复杂了所以通过练习-3(URL 统一资源定位器)】编写常见格式的字符串的正则表达式来由浅入深的认识它
直接头皮发麻,不要慌,我们逐个解释。
2025-01-19 09:30:00
654
1
原创 【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python 正则表达式:太复杂了所以通过练习-2(邮箱-IP地址)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-19 09:15:00
344
原创 【python argparse如何输出指定参数的帮助 help 内容】自定义帮助信息方法 包含所有帮助方法
通过一个完整的示例来展示如何使用自定义的帮助信息来输出特定参数的帮助内容。这个示例将包括一个脚本,该脚本接受一个特殊参数,用于显示指定参数的帮助信息。
2025-01-18 10:11:10
438
原创 【python 正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它
【代码】【python正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它。
2025-01-18 10:10:23
577
1
原创 【python argparse.add_argument 方法详解】
add_argument是Python中argparse模块的一个方法,用于为命令行接口定义参数。argparse是Python标准库的一部分,用于编写用户友好的命令行接口。
2025-01-18 10:10:05
425
原创 【python 用简单的方式理解python中的闭包和装饰器】
1、闭包闭包是指一个函数内嵌套另一个函数,并且这个嵌套的函数引用了外层函数的变量。闭包的作用是可以访问外层函数的变量,并且在函数内部修改变量的值。def make_adder(n): def adder(x): return x + n return adderadd_three = make_adder(3)print(add_three(4)) # 72、装饰器装饰器是一种特殊的函数,它可以用来修改另一个函数的行为。装饰器的语法如下:# @装饰器函
2025-01-17 20:15:00
206
原创 【python 关于python的文档字符串(docstring)】的注意点
Python 中的函数只能有一个文档字符串(docstring),它必须是紧跟在函数定义后面的第一段字符串,位于函数体代码之前。如果你在一个函数中写了多段看起来像文档字符串的文本,只有第一段会被当作文档字符串,其他的不会被识别为文档字符串。因此,当你打印一个函数的文档字符串时,只有定义在函数开头的那部分字符串会被输出。不会被识别为文档字符串,它只是函数体中的一个普通字符串。仍然只会返回第一段字符串。
2025-01-17 20:00:00
266
原创 【python 字典(dict)和集合(set)】创建、访问、基本操作及各自的特点】
Python 中的字典(dict)和集合(set)都是内置的数据结构,它们各自有不同的用途和特点。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:15:00
367
原创 【python 列表(list)和元组(tuple)】创建、访问、基本操作及各自的特点
Python 中的列表(list)和元组(tuple)都是用于存储有序集合的数据结构。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。
2024-12-22 09:00:00
203
原创 【Qt QModbus如何监控plc点位】附代码 + 提醒
注意,你拿到的数据ID和代码中识别的地址是有换算关系的,比如你拿到的可能是16进制或者是8进制的ID,那你在代码中就需要把它换成10进制,代码可以识别的格式。,你可以在写入(sendWriteRequest)后,自连接一个信号(&QModbusReply::finished)与槽,实时监控写入后的状态。,同时由于QModbus不带有回调函数,你就只能通过轮询的方式来读取这个点位的数据,也就是下面介绍的这种情况!类,它负责与 Modbus TCP 服务器建立连接,并定期轮询特定的寄存器点位。
2024-12-22 08:45:00
725
原创 【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式
【代码】【SQL/MySQL 日志模块中 二进制日志的】作用、存储方式、格式、读取方式。
2024-12-21 09:15:00
407
原创 【SQL/MySQL 中日志系统部分-错误、二进制、查询、慢查询日志】作用及参数设置
MySQL 日志系统是数据库管理的重要组成部分,它帮助数据库管理员监控数据库活动、优化查询、恢复数据以及诊断问题。
2024-12-21 09:00:00
520
WizTree中文版 - 极速磁盘空间分析清理工具(秒级扫描+可视化空间管理)
2025-04-17
SQL中 各种事务级别 和 脏读 不可重复读 幻读问题代码示例
2024-08-08
MFC实现红绿灯com、dll
2024-07-29
VC++之MFC类库中文手册资源
2024-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人