- 博客(124)
- 资源 (14)
- 收藏
- 关注
原创 Ubuntu安装和配置ssh教程
一般Ubuntu都会默认安装openssh-client,但是没有安装openssh-server。安装ssh服务器sudo apt install openssh-server安装ssh客户端sudo apt install openssh-client配置ssh客户端,去掉PasswordAuthentication yes前面的#号,保存退出su...
2018-08-15 12:02:29
162683
26
原创 goto的作用域
摘要:C++中的goto语句作用域严格限制在同一函数内,遵循以下核心规则:1)仅能在同一函数内跳转;2)只能向后跳转到同一或外层作用域;3)标签必须可见;4)禁止跨越变量初始化语句跳转。Qt环境下额外注意事项包括不能跳转到信号槽块内部,避免跨越智能指针初始化。合法使用场景主要是函数内的统一出口跳转(如错误处理),而跨函数、向前跳转内层作用域等行为会导致编译错误。通过Qt 5.12.3代码示例展示了合法与非法场景,说明合理使用goto可简化流程控制,但滥用会破坏代码逻辑。
2025-11-26 20:30:00
854
原创 QMap/QHash/QPair 完整对比表 + 常用操作示例代码
摘要: QMap和QHash是Qt中的关联容器,用于存储键值对,而QPair是简单的数据结构工具类,用于组合两个值。QMap基于平衡二叉搜索树实现,提供有序存储,操作时间复杂度为O(log n),适合需要排序或范围查询的场景。QHash基于哈希表,提供平均O(1)的操作速度,适合高性能查找但无需有序性的情况。QPair则用于将两个值打包,常用于函数返回多值或临时数据组合。选择时,优先考虑性能需求和数据顺序要求:QHash适合快速查找,QMap适合有序存储,QPair用于简单数据打包。
2025-11-03 21:30:00
738
原创 QXmlStreamReader、QXmlStreamWriter和QDomElement区别
Qt框架提供了三种XML处理方式:QXmlStreamReader/QXmlStreamWriter(流式)和QDomElement(树式)。流式类内存占用低、速度快,适合处理大文件但只能顺序访问;树式类将整个文档加载到内存形成节点树,支持随机访问和修改,但内存消耗大。选择依据:处理大文件用流式,需要复杂修改用小文件用树式。
2025-10-23 14:45:41
909
原创 设置git拉取的文件换行格式
通过以上方法,可确保拉取文件时换行符格式符合预期,减少协作冲突。配置后建议在团队内同步规则,并重新拉取代码验证效果。:提交时自动转换换行符为 LF,拉取时根据系统自动调整。:Git 自动识别文本文件并转换换行符。文件后,其他成员拉取时会自动应用规则。:强制指定换行符类型(覆盖全局设置)。用于识别换行符不一致的文件。
2025-03-26 21:00:00
1168
原创 VS里的 代码片段(Code snippet)
然而,我可以提供一个常见的C++代码片段特殊变量列表,以及如何在C++代码片段中使用它们的示例。// 假设你需要索引来计算 std::cout << "Line index: " << $TM_LINE_INDEX$ << std::endl;// 输出行号 std::cout << "Line number: " << $TM_LINE_NUMBER$ << std::endl;// 输出当前行 std::cout << "$TM_CURRENT_LINE$" << std::endl;
2025-02-28 20:00:00
915
原创 避免 Git 文件名大小写出错
在 Windows 上,默认 Git 会忽略大小写。,可大幅减少大小写问题。若问题已发生,优先使用。或重置缓存修正,避免直接操作文件系统。
2025-02-28 19:00:00
768
原创 Lambda 表达式
Lambda 表达式是匿名函数的简写形式,允许在代码中直接定义函数而无需命名,常用于简化代码、实现回调或作为参数传递。它在现代编程语言(如 C++、Python、Java、C#)中广泛支持,尤其在函数式编程和异步操作中极为高效。Lambda 的核心组成(以 C++ 为例)[捕获列表] (参数列表) -> 返回类型 { 函数体 }
2025-01-24 18:00:00
658
原创 OutputDebugString编译问题
是 Windows API 中的一个函数,用于将调试信息输出到调试器。是一个指向以 null 结尾的字符串的指针。在 Unicode 编译模式下,这样可以确保你的代码在不同编译模式下都能正确编译和运行。,而在多字节字符集(MBCS)编译模式下,
2024-10-23 20:15:00
587
原创 时间复杂度和空间复杂度
时间复杂度:关注算法执行时间随输入规模增长的趋势。空间复杂度:关注算法在执行过程中所需的额外空间随输入规模增长的趋势。优化方案:选择更高效的算法、减少循环嵌套、使用分治法、动态规划、减少额外空间的使用、使用迭代代替递归、优化数据结构。通过分析和优化时间复杂度和空间复杂度,我们可以更好地选择和优化算法,以满足实际应用中的性能需求。
2024-09-20 20:00:00
1000
原创 try{}catch(){}
try{}catch(){} 是异常处理机制的一部分,用于捕获和处理程序运行时可能发生的异常。异常处理机制是现代编程语言中非常重要的一部分,它可以帮助开发者更好地管理错误和异常情况,提高程序的健壮性和可维护性。通过这个例子,可以看到 try{}catch(){} 的用法和注意事项,以及如何使用标准异常和自定义异常来提高程序的健壮性和可维护性。
2024-08-21 19:30:00
916
原创 EditorConfig详细用法
通过这些属性和规则,EditorConfig 帮助项目维护一致的编码风格,减少编辑器之间的不一致性,并简化开发者的配置工作。EditorConfig 文件中的属性可以定义在不同的层级中,具体应用时,更具体定义的属性会覆盖更一般定义的属性。文件统一编码风格,以下是所有标准属性的列表,以及它们的用法和示例。: 匹配所有文件,但不包括具有特定扩展名的文件。节名可以使用通配符匹配文件路径,例如。: 匹配具有特定扩展名的所有文件。: 匹配具有多个扩展名的所有文件。: 定义每个缩进级别使用的列数。
2024-07-12 19:00:00
1816
原创 Qt的坐标转换
所有这些函数都是用于坐标转换的,它们允许你在部件的局部坐标系和全局坐标系或其他部件的坐标系之间进行转换。使用和时,要注意这些函数依赖于部件的父/子关系和部件的绝对屏幕位置。和仅适用于有明确父子关系的部件之间。mapTo和mapFrom更为通用,它们可以在任何两个部件之间进行坐标转换,无论它们是否有直接的父子关系。在使用这些函数时,确保传递的点是有效的,并且目标部件是有效的。如果目标部件是nullptr,则mapTo和mapFrom将导致未定义行为。
2024-04-17 10:47:28
1534
原创 详细介绍ContextMenuPolicy
ContextMenuPolicy 是 Qt 框架中 QWidget 类的一个枚举类型,它定义了如何响应和处理鼠标右键点击事件,即上下文菜单的策略。上下文菜单是一种临时出现的菜单,通常出现在用户执行特定操作(如右键点击)时,提供与当前上下文相关的操作选项。
2024-04-12 18:15:00
1616
原创 设置进程优先级
注意,在 Windows 中,进程的优先级分为 5 个等级,从 IDLE_PRIORITY_CLASS 到 REALTIME_PRIORITY_CLASS。其中,IDLE_PRIORITY_CLASS 是最低优先级,REALTIME_PRIORITY_CLASS 是最高优先级。当我们设置进程的优先级为高时,该进程将会比其他进程更早执行。因此,如果我们希望我们的程序在 Windows 中运行得更快,我们可以使用上述代码来设置程序的优先级为高。但是,需要注意的是,设置进程的优先级可能会影响其他进程的执行。
2024-01-05 19:00:00
1980
原创 PLC线圈介绍,以及和Modbus线圈区别
在PLC(可编程逻辑控制器)中,线圈是一种用于控制电路的元件,通常用于控制输出设备的状态。PLC中常见的线圈类型有M、B、R线圈。M线圈(Marker Coil):M线圈用于表示内部或外部的逻辑状态,通常用于存储和处理逻辑信号。M线圈可以被程序读取和写入。M线圈通常用于实现逻辑运算、计数器、定时器等功能。B线圈(Bit Coil):B线圈用于表示内部或外部的二进制位状态,通常用于存储和处理数字信号。B线圈可以被程序读取和写入。B线圈通常用于控制数字输出设备,如继电器、电磁阀等。
2023-10-24 21:45:00
4440
原创 怎样才能免费使用Qt开发闭源商业软件?
如果您不希望满足 LGPL 许可协议的条件,您可以考虑购买商业许可,这样您就可以在闭源商业软件中使用 Qt 而无需遵守 LGPL 许可协议的限制。商业许可提供了更多的灵活性和额外的支持。1. 在您的软件中使用 Qt 库时,您需要将 Qt 的动态链接库(或者 Qt 的源代码)以及 Qt 的许可协议一同提供给最终用户,确保他们能够访问和修改 Qt 部分的代码。2. 如果您对 Qt 进行了任何修改,您需要将这些修改的源代码公开发布。3. 您不能对 Qt 本身的源代码进行闭源修改或者重新发布。
2023-08-14 19:00:00
5225
原创 Qt事件的传递顺序
事件的传递顺序:先是事件过滤器,然后是该部件的event()函数,最后是该部件的事件处理函数。这里还要注意,event()函数和事件处理函数,是在该部件内进行重新定义的,而事件过滤器却是在该部件的父部件中进行定义的。
2023-08-04 22:00:00
653
1
原创 Q_ASSERT的详细介绍
需要注意的是, Q_ASSERT 宏只在调试版本中起作用,即在使用 Qt 的 Debug 版本编译程序时才会执行。在使用 Qt 的 Release 版本编译程序时, Q_ASSERT 宏会被编译器优化掉,不会产生任何代码。在上面的错误信息中,"main.cpp" 表示错误发生的源文件,"10" 表示错误发生的行号,"i == 0" 表示检查的条件表达式。在编写程序时,可以使用这些断言宏来检查程序的正确性,帮助发现潜在的错误。Q_ASSERT 是 Qt 中的一个宏,用于在调试时检查某个条件是否为真。
2023-06-01 21:45:00
2967
原创 #pragma once作用和以及和宏定义比较
pragma once 的作用是告诉编译器,当前头文件只需要被包含一次,如果已经包含过了,就忽略后面的包含请求。此外, #pragma once 是标准的 C++ 所支持的语法,而且不需要指定宏定义的名称,因此使用起来更加方便。这些宏的作用是定义一段区域,将其他头文件的包含请求与当前头文件的重复包含进行区分。在这种方式下,你需要显式指定宏定义的名称,并且需要按照顺序编写三个宏。但是有些编译器可能不支持 #pragma once ,在这种情况下,你可能需要使用宏定义解决头文件重复包含的问题。
2023-05-23 21:00:00
1671
原创 Qt实现XML的读取和写入
XML(可扩展标记语言,eXtensible Markup Language)是一种用于数据传输和存储的标记语言,它是一种可读性强、可扩展、通用、标准化的语言,常用于 Web、桌面应用程序和移动应用程序的数据交换和存储。
2023-05-21 10:00:00
1296
原创 不用科学上网,免注册,免下载,使用OpenAI GPT-3
Bito使用的是OpenAI GPT-3,这是一种由OpenAI开发的自然语言处理模型,它可以生成高质量的自然语言文本,且具有极强的适应性和可扩展性。Bito利用GPT-3的强大能力来为客户提供优质的人工智能解决方案和服务。官网,直接点击try bito with no installation,以访客身份进行使用,就可以使用Bito了。
2023-04-27 10:27:35
959
原创 详细介绍Linux启动流程
systemd是一个系统管理器,它负责启动系统中的各种服务和进程。init进程的主要任务是启动系统中的各种服务和进程,以确保系统正常运行。引导加载程序是一个小程序,通常存储在硬盘的主引导扇区中。然后它会挂载根文件系统,并启动init进程。总之,Linux启动流程可以概括为:硬件检测,引导加载程序加载内核,内核初始化,init或systemd进程启动服务,用户空间初始化。BIOS/UEFI会检查计算机硬件,并加载启动设备的引导扇区到内存中。一旦系统中的各种服务和进程都已启动,Linux启动过程就完成了。
2023-04-24 19:30:00
564
原创 QT多线程的各种用法
QReadWriteLock是Qt中的读写锁类,它可以在多个线程之间提供共享访问的读写操作。QThread是Qt中最基本的多线程类,它可以在一个新的线程中运行一个QObject对象。QWaitCondition是Qt中的等待条件类,它可以在多个线程之间提供协调和同步功能。QMutex是Qt中的互斥锁类,它可以保护共享资源的访问。// 在这里执行耗时操作。// 在这里执行耗时操作。// 在这里执行耗时操作。// 在这里访问共享资源。// 在这里访问共享资源。// 在这里执行写操作。// 在这里执行读操作。
2023-04-22 23:59:40
298
转载 悄悄分享 60 个相见恨晚的神器工具
让 WebP 图片下载为 PNG 格式,从 Github 批量下载表情包,一键滚动截屏整个网页,助你快速成为 B 站老司机,一键分析网站技术栈,翻录网页视频神器等等。这些功能,都能在 Chrome 中使用件简单实现。不信?你往下看就行了。最近,GitHub 上有个名为 ChromeAppHeroes 的项目登上了趋势榜。与其他 GitHub 项目不同,它的目标聚焦在 Chrome 上。目标是为优秀的Chrome插件写一本, 让 Chrome 插件英雄们造福人类。
2023-04-21 19:00:00
1276
原创 Qt的Qss用法
Qss 是一个强大的控件样式表语言,可以帮助我们实现各式各样的自定义控件效果。它可以设置控件属性、子控件属性、样式状态、颜色、图像、动画等。了解 Qss 语法和常用样式属性将能够让你更快速地实现丰富的 Qt 界面效果。
2023-04-20 19:00:00
1869
2
转载 Qt 文件常见操作管理类
/ Qt文件管理类public:// 文件是否存在// 创建文件夹// 复制文件// 移动文件// 复制文件夹// 删除文件或文件夹// 计算获取文件的MD5值private:FileMgr();回到顶部。
2023-04-19 12:00:00
308
原创 Qt的TCP传输数据,出现中文乱码的解决方案
Qt的TCP传输数据中文乱码的问题,可能是由于编码不一致导致的。以上是解决Qt的TCP传输数据中文乱码的一些方法,具体方法可以根据实际情况进行调整。QString str = "中文字符串";
2023-04-17 08:55:39
4142
转载 C++(Qt) 和 Word、Excel、PDF 交互总结
日常开发软件可能会遇到这类小众需求,导出数据到Word、Excel以及PDF文件,如果你使用C++编程语言,那么可以选择的方案不是很多,恰好最近刚好有这部分需求,整理下这段时间踩过的坑,方便后人
2022-03-16 19:00:00
2923
VSPD虚拟串口助手
2018-03-17
收藏的博客 -- Qt有关的GitHub-Gitee开源项目.docx
2020-07-07
正运动入门程序
2018-11-19
网络串口助手
2018-12-19
MultiUI.zip
2020-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅