- 博客(312)
- 资源 (8)
- 收藏
- 关注
原创 Qt局部变量“遮蔽(shadow)”成员变量导致lambda传参报错
摘要:代码中存在成员变量与局部变量命名冲突问题,导致QMenu指针异常。在initSettingsMenu()中创建的同名局部变量覆盖了成员变量settingsMenu,函数结束后成员变量变为野指针。此外,QMenu的弹出特性会截获鼠标事件,导致按钮状态异常。解决方法包括:1) 正确初始化成员变量;2) 使用exec()显示菜单;3) 手动重置按钮视觉状态,包括清除悬停标记、刷新样式和强制更新。该问题揭示了Qt中对象生命周期管理和事件处理的注意事项。
2026-01-08 16:25:22
243
原创 银河麒麟V11 qtcreator11.0.3编译
本文详细介绍了在Wayland环境下编译安装Qt Creator 11.0.3的过程。首先需要安装Qt6基础开发包及依赖项,然后下载源码并创建构建目录。主要遇到Qt私有头文件缺失问题,需安装qt6-base-private-dev等私有开发包,但会导致libexpat1和libudev1版本冲突。解决冲突后重新配置CMake并完成编译安装,最终生成可移植的安装包。新机器使用时需先安装基础组件,再解压安装包即可运行Qt Creator。整个过程耗时约1小时,成功解决了在Qt6环境下编译Qt Creator的技
2025-11-26 11:32:58
850
原创 银河麒麟v11 arm编译Qt creator8.0.2报错
本文详细介绍了在银河麒麟V11系统上编译安装Qt 5.15.10和Qt Creator 8.0.2的过程。主要内容包括:1)下载并编译Qt 5.15.10源码,配置安装路径和环境变量;2)解决Qt Creator编译过程中遇到的libicu版本冲突问题,通过禁用Clang相关功能绕过依赖错误;3)修改多个CMake配置文件以确保编译成功;4)最终完成编译安装并配置动态链接库路径。整个过程耗时约1小时,成功后在/opt目录下安装了Qt和Qt Creator,并通过环境变量配置使其可用。
2025-11-25 11:06:56
922
原创 QT之双缓冲 (QMutex/QWaitCondition)——读写分离
本文介绍了使用Qt中的QWaitCondition实现双缓冲机制来优化多线程同步,降低CPU占用率。文章对比了单缓冲和双缓冲方案,指出双缓冲通过分离读写缓冲区,显著减少锁冲突时间,适合中高频数据场景(如GUI绘图)。提供了完整的双缓冲实现代码示例,展示了生产者-消费者模型的工作流程。最后强调双缓冲适用于单生产者-单消费者场景,更复杂的多线程场景可能需要环形缓冲区或无锁队列。
2025-08-28 17:23:58
658
原创 QT之QLocalSocket下的两进程互相守护
利用QLocalSocket封装GuardianService类,通过简单配置即可实现进程间的相互守护。
2025-08-04 16:09:14
657
原创 QT之QThread 与 QtConcurrent
Qt提供了QThread和QtConcurrent两种多线程机制:QThread适合长期运行的复杂任务,支持手动控制线程生命周期和信号槽通信;QtConcurrent基于线程池,适合短期并发任务,使用更简洁但不能直接操作UI。关键区别在于控制粒度(底层vs高层)和线程管理方式(手动vs自动)。建议根据任务类型选择:计算密集型用QtConcurrent,需要交互或持久运行的任务用QThread,并注意避免在QtConcurrent中直接访问UI。两者各有优势,需结合具体应用场景选择。
2025-07-28 16:58:10
947
原创 VC++ 服务守护qt用户级UI进程
本文介绍了在Windows本地服务程序中以用户权限启动进程的方法,适用于WinMain和ServiceMain模式。主要包含三个功能:IsProcessRunning检测进程是否运行;LaunchAsActiveUser在Windows Vista+系统中以活跃用户身份启动进程;LaunchProcessAsCurrentUserXP在XP系统中通过explorer.exe的Token降权启动进程。ProtectUserProcesses函数使用独立线程定期检查并重启指定进程,确保用户进程持续运行。特别注意
2025-06-20 15:30:36
303
原创 win11 24h2 远程桌面 频繁断开 已失去连接 2025
Windows11自升级2025年2月补丁后版本号为系统版本是26100.3194,远程桌面频繁断开连接,尝试连接,尤其在连接旧的server2012。目前经测试,在组策略中,远程桌面连接客户端,关闭客户端上的udp,从而强制使用tcp,反复测试再没有出现该问题,可临时这样解决等该后期微软补丁。先win r再输入gpedit.msc。
2025-02-25 17:47:09
6640
4
原创 outlook邮箱关闭垃圾邮件——PowerAutomate自动化任务
微软邮箱反垃圾已经很强大了非常敏感,自家的域名的邮件都能给扔到垃圾邮箱里,但还是在本地增加了一层垃圾邮箱功能,然后垃圾邮箱并没有提示,导致错过很多通知,本身并没有提供关闭的功能,但微软有个MicrosoftPowerAutomate类似自动任务,可以自由新建各种任务。
2024-11-14 10:56:22
1786
原创 wireshark演进之路——从GTK到Qt
Wireshark 从 GTK+ 转向 Qt 是一个顺应技术发展趋势、优化用户体验的重要决策。通过这一转变,Wireshark 能够更好地满足不同平台用户的需求,并提供更现代化、流畅的网络分析体验。对于广大 Wireshark 用户和开发者而言,这次转型是一个值得期待的更新,将帮助 Wireshark 在未来继续引领网络分析工具的前沿。
2024-11-12 16:13:11
1491
原创 欧拉系统离线安装界面ukui
openEuler | 开源社区 | openEuler社区官网openEuler是一个开源、免费的 Linux 发行版平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,openEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。想要了解更多信息,欢迎访问openEuler官网。也可以从以上千兆源地址直接下载dvd.iso。
2024-08-09 18:42:24
4165
2
原创 ESXI6.7升级补丁报错VIB QLC_bootbank_qedrntv
在以下链接中列举了,可能出现的兼容问题的列表,同时提供了一种办法,即用命令esxcli storage core adapter list | grep 设备名称(第一步中已用红色圈出),当命令行返回为空时代表系统当前未使用该设备移除驱动即可,如果有返回值那就代表正在使用,那就得联系oem厂商。VMware在下方链接说的很清楚,报错原因为OEM提供的镜像与新版本补丁某些驱动不兼容;
2024-07-09 09:39:05
1227
原创 ESIX挂载usb移动硬盘或者优盘并拷贝原数据存储数据
ESXi 6.*系列默认不支持NTFS、exFAT等常见文件系统,fat32支持但没意义仅小文件可以用,不过可以通过一些额外步骤和第三方工具来访问NTFS格式的存储设备,但生产环境不推荐这样做,需要安装第三方包。最稳妥的方式,使用vmfs格式,也就是说常见的优盘和移动硬盘想要使用,均需全盘重新分区且格式化为vmfs格式。3、先不要插入usb设备,或者按以下断开连接(物理机拔出usb就行,不需要断开)5、插入usb设备并在下图位置连接(物理机不需要连接,插入usb设备就行)1、esxi支持和不支持分区格式。
2024-07-04 13:35:45
7675
原创 vs、utf-8、utf-8bom乱码分析及实测
本篇讨论的重点是采用什么编码格式对输出的格式要清楚否则越转越乱。1、微软还是那个bom派,UTF-8 bom支持了两种输出情况, 默认支持无需宏但输出解析为gb2312,另一种加宏或者/utf-8选项都会解析为标准utf-8;2、标准utf-8项目,也就是不带bom的utf-8,别挣扎了就一种情况,编译选项/utf-8加上,输出就是utf-8,仅有此种方式靠谱统一;
2024-06-12 16:06:46
3438
2
原创 Visual Studio和BOM历史渊源
今天看文档无意间碰到了微软对编码格式解释,如下链接:下图为节选,微软表达的意思很明确UTF-8确实已经成为Llinux乃至行业主流,但windows历史上默认的文件编码格式都是是 Windows-1252,可以等同理解为即 ANSI 编码,这一点已经不能改变,这就是为什么vs、命令行和windows记事本等默认都是本地化格式改变GB2312。
2024-06-06 18:53:36
1692
3
原创 notepad++ 批量转所有文件编码格式为UTF-8
默认路径:C:\Users\用户\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts。3、自动打开脚本,复制粘贴以下内容,并将文件夹路径修改为需要转换的文件夹路径。1、安装notepad++及PythonScript_3.0.18.0插件。2、new Script,新建脚本,文件名为ConvertEncoding。4、先show console显示命令行,然后Run。5、确认已经处理的数量和文件夹数量是否一致。
2024-05-20 11:00:44
5854
2
原创 Gave up waiting for suspend/resume deviceGave up waiting for root file system device ubuntu24.02
fdisk -l和Gparted都报错 “The primary GPT table is corrupt, but the backup appears OK, so that will be used”,标识gpt表损坏。结论:gpt分区表异常导致系统无法进入。
2024-05-15 10:20:09
2275
2
原创 银河麒麟v10 重装系统恢复原home分区
ctrl alt f1切到命令行模式,查看/home目录下的用户文件夹里无文件。1、blkid找到data分区的uuid和设备编号,记录下来;现象:系统还原后在锁屏状态下输入密码后闪退回锁屏。4、重启,桌面恢复正常。
2024-05-14 15:33:35
6057
原创 C++之nothrow
nothrow是 C++ 中的一个关键字,用于改变 new操作符的行为,使其在内存分配失败时不抛出异常,而是安静地返回一个空指针(nullptr这对于那些不希望或不能处理异常的代码片段特别有用。要使用 nothrow,你需要包含< new >头文件,并在 new表达式中传入 std::nothrow。
2024-05-07 15:42:05
779
原创 QT6之多线程——子类化QObject和子类化QThread
备注:本文重点不是教怎么写多线程,这个官方示例依和网上示例一大把。。多线程的必要性不言而喻,Qt默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理(鼠标事件、键盘事件等等)或者窗口控件数据的更新子线程负责后台的业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理.最常见的现象就是,当你新建项目后给QMainWindow或者QWidget对象的构造函数引入复杂耗时的逻辑时,然后再试着拖动窗口顶部结果卡死了。因为事件循环被阻塞了拖动窗口的事件执行不到了,然后就卡死了……
2024-04-30 11:09:44
1823
1
原创 ubuntu24.04 正式放弃VNC
去年9月在22.04中测试发现由于gnome启用Wayland桌面,然而Wayland和vnc兼容不佳,就已经黑屏等问题,当时是vnc和ms-rd(微软远程桌面)两个菜单。Ubuntu22.04 vnc远程黑屏_ubuntu 远程桌面vnc黑屏-CSDN博客文章浏览阅读4.8k次。原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。
2024-04-28 13:38:33
5360
2
原创 QService 服务 指令引用的“0x00000000”内存。该内存不能为“read“
类在Qt框架中是设计用来简化Windows服务或类Unix守护进程创建的。这个类提供了一组方法和属性,使得开发者能够专注于服务逻辑,而不必担心操作系统层面的细节。下面是一些QtServiceBase。
2024-04-24 17:53:34
633
原创 QT6之qDeleteAll
它是 Qt 提供的一个模板函数,它用于一次性删除容器中的所有对象。这个函数非常方便,尤其是在处理指针容器时,可以简化代码并减少出错的可能性。该函数适用于任何存储指向动态分配对象的指针的 STL 容器(如QListQVectorQMapQSet等)。
2024-04-22 11:25:03
1083
原创 QT6之QObjectCleanupHandler对象清理器
是一个在 Qt 库中用来帮助管理 QObject 对象生命周期的工具类。它提供了一种机制,通过这个机制可以自动删除添加到其中的 QObject 对象,一旦这些对象被设定为 nullptr,在处理动态创建的对象并且这些对象的生命周期需要细致管理时特别有用。
2024-04-22 11:13:42
763
原创 Qt6之QScopedPointer——智能指针
以下使用一个简单的QTime对象来演示各种内存管理方式:2、手动管理 如下,构函数中创建,析构函数中delete,在简单场景下并没有错;4、使用智能指针管理场景4.1 为什么没*号,它还是指针吗?到底对象是哪个?4.2 访问和管理成员对象时应该用箭头运算符“->”还是“*”?Qt官方示例中演示了复杂场景delete和QScopedPointer的对比,如下图:
2024-04-19 15:12:00
1024
原创 麒麟V10 sp3 2303桌面版操作系统防火墙加入白名单
实际上测试后发现依然无效,原因是iptables-restore未生效,查询debian相关内容后得出根本原因是:系统的网络管理转向了networkmanager作为网络服务导致,而这个是network服务的配置,目前放在/etc/NetworkManager/dispatcher.d/pre-up.d/里。此时,应用程序已经能通过防火墙并正常使用了,但是按照iptables 规范重启后防火墙规则自动失效。从安全中心,网络保护,高级配置,新建规则,建议只定义端口和协议,其它保持不动即可;
2024-03-19 10:56:54
3801
原创 中科方德4.0清空旧磁盘分区图文教程
方德新版本会默认“将home目录设置为最大分区,根目录为最小分区”导致后续项目无法使用,因此新版本必须选择“自定义”;
2024-03-07 10:47:06
1571
原创 银河麒麟v10——植物大战僵尸原版——2023教程
银河麒麟v10 植物大战僵尸 注意:最后一步,需要先解压tar包,再切到PlantsVsZombies.exe所在目录下,再执行启动命令;
2023-11-30 15:31:34
4614
原创 cryptopp Base64Encoder \n问题
调用库函数Base64Encoder进行base64加密后确认多出来了\n。的问题, 由于base64一行不能超过76字符, 超过就会添加回车。(在Windows中是 \r\n , 在Linux中是 \n )方法一、给定参数使其不要加入换行符。方法二、剔除\r和\n。
2023-11-14 10:05:58
566
原创 chromium arm64 新版
chrome官方并没有对外公布arm64的正式版本但debian已经适配,以下链接提取自debian可直接一条命令安装:即可。
2023-10-19 15:26:16
2559
2
原创 ubuntu 22.04.3 live server图文安装流程
13、是否升级到专业版pro,也就是付费服务,默认是跳过,点继续即可;备注:以下操作全用键盘,tab切换,enter确认,方向键移动;15、snap格式的预装软件,可依据实际情况勾选,一般不需要;8、配置源,简单说:就是下载更新源,一般输入国内阿里源地址;9、这里默认就是自动分区并且启用lvm,保持默认即可;14、这里要在这一行,回车让x选中,否则没有ssh;16、左上角提示安装完成,就可以点最下方的,重启了;7、如果需要配置代理请在这里配置,一般略过;2、选择语言,这里只能选择英语,无中文;
2023-10-12 10:12:50
9003
2
原创 Ubuntu22.04 vnc远程黑屏
原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现(xorg太流行),并不兼容Wayland,所以vnc无法正常使用。realvnc官方也明确说明,目前在Linux上无法支持 Wayland。是一套桌面环境,包括一系列应用程序。比如显示管理器,窗口管理器,firefox浏览器等都是XClient。
2023-09-19 18:01:54
13734
1
原创 Qt6.5安装教程——国内源
Qt6.5安装教程 国内源 开始非商业授权下,不再提供离线安装方式的exe,但源码安装费时费力,所以推荐安装方式已经为在线组件安装方式,包括vs2022、Qt在线安装工具已经成为开发工具新的安装趋势。NO。KDE 社区和 Qt 公司之间曾经达成过一项协议,其中规定:如果 Qt 公司在开源许可证有效的情况下停止开发自由软件版本的 Qt(Qt Free Edition),那么基金会有权以 BSD 许可证或其他开源许可证发布 Qt。当然这项协议最早为了防止qt公司倒闭,KDE可以继续延续不至于夭折。
2023-08-30 17:52:28
6782
7
C++ 获取硬盘序列号 mac地址
2018-12-18
VisualSVN Server 3.6.4 用户自助修改密码最终版
2017-11-02
Qt 5开发及实例(第4版)[陆文周][课件和代码]
2019-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅