摘要: Qt实现简单事件总线 事件总线(Event Bus)是一种解耦组件通信的设计模式,它允许不同对象之间通过事件进行通信而无需直接引用对方。 事件通常是自定义类型,需要在main.cpp中注册自定义元类型 //注册自定义元类型 qRegisterMetaType<KeyPressedEvent>("Ke 阅读全文
posted @ 2025-07-09 13:13 xhubobo 阅读(0) 评论(0) 推荐(0)
摘要: 本文实现对单例服务的管理。 服务容器类实现功能: 注册单例类型(默认构造函数); 注册单例类型(接口及实现类,默认构造函数); 注册单例类型(带自定义工厂函数); 获取单例实例。 这些方法使用std::mutex加锁。 服务管理类实现功能: 私有方法:注册单例类型、初始化服务、反初始化服务, 共有方 阅读全文
posted @ 2025-07-07 10:45 xhubobo 阅读(1) 评论(0) 推荐(0)
摘要: 在Qt项目中直接包含spdlog源码是最简单且跨平台的集成方式。以下是详细的实现步骤: 1. 下载spdlog源码 通过spdlog的GitHub仓库下载源码:v1.15.3.zip。 将v1.15.3.zip解压缩,拷贝include、src文件夹到third_party/spdlog,Qt项目结 阅读全文
posted @ 2025-07-05 21:45 xhubobo 阅读(1) 评论(0) 推荐(0)
摘要: 1. 下载sdk vlc sdk下载地址为http://download.videolan.org/pub/videolan/vlc/,以3.0.20为例,下载文件为vlc-3.0.20-win32.7z。 需要注意的是,需要下载.7z文件,.zip文件中是没有sdk文件夹的。 将vlc-3.0.2 阅读全文
posted @ 2025-07-04 09:46 xhubobo 阅读(5) 评论(0) 推荐(0)
摘要: 1、在*.pro文件中添加多媒体模块 QT += multimedia multimediawidgets 2、使用QCamera`和`QCameraViewfinder实现捕捉和显示摄像头图像 2.1 头文件mainwindow.h #ifndef MAINWINDOW_H #define MAI 阅读全文
posted @ 2025-02-25 17:35 xhubobo 阅读(113) 评论(0) 推荐(0)
摘要: 在 WPF 中,DataGrid 默认情况下行高是固定的。如果要实现 DataGrid 的行高自适应(根据行中内容动态调整行高),可以通过 LayoutUpdated 事件实现。 <Grid Margin="15,10"> <Grid.RowDefinitions> <RowDefinition H 阅读全文
posted @ 2025-02-19 11:41 xhubobo 阅读(242) 评论(0) 推荐(1)
摘要: 在 .NET 6 和更高版本中,C# 引入了一个新功能叫作 "global using directives",它允许我们在一个地方定义全局可用的 using 指令,而不必在每个文件中重复。然而,有时候我们可能希望在某些文件中禁用特定的全局 using 指令。 我在基于 .Net 8 的 WPF 项 阅读全文
posted @ 2025-02-19 11:20 xhubobo 阅读(41) 评论(0) 推荐(0)
摘要: 1、问题场景 WPF使用Prism.WPF、Prism.Unity组件之后,使用IOC方法创建主窗口(MainWindow): protected override Window CreateShell() { return Container.Resolve<MainWindow>(); } 在主 阅读全文
posted @ 2025-01-21 08:59 xhubobo 阅读(198) 评论(0) 推荐(1)
摘要: 本文以BeJson(https://www.bejson.com/)中的JSON在线编辑器示例内容作为学习Qt中构建、解析Json的参考方法。 1、Json文本 { "name": "BeJson", "url": "http://www.bejson.com", "page": 88, "isNo 阅读全文
posted @ 2024-11-11 23:10 xhubobo 阅读(43) 评论(0) 推荐(0)
摘要: void testReadWriteFile() { //当前程序所在文件夹 QString dirPath = QCoreApplication::applicationDirPath(); QString path = QDir::cleanPath(dirPath + QDir::separa 阅读全文
posted @ 2024-11-11 22:06 xhubobo 阅读(26) 评论(0) 推荐(0)
摘要: Qt中使用QNetworkAccessManager类来实现Http相关请求,本文介绍Http Get请求的简单实用方法。 下面是Qt中进行Http请求的简单步骤: 定义QNetworkAccessManager指针及槽函数 创建QNetworkAccessManager对象并关联槽函数 在类的析构 阅读全文
posted @ 2024-11-07 23:06 xhubobo 阅读(279) 评论(0) 推荐(0)
摘要: 1、为Qt添加网络模块 打开.pro文件,添加network模块: QT += core gui network 2、Qt在调试模式下UI显示中文正常,输出显示中文乱码 这种情况下可以修改系统编码。 阅读全文
posted @ 2024-11-06 17:35 xhubobo 阅读(31) 评论(0) 推荐(0)
摘要: 使用打印机扫描双面文档后,页码是交错且倒置的,因此想到使用C#获取PDF页面后重新排列,组成符合预期的PDF文件。基本思想就是分别获取2个PDF文档的页码,然后根据页码规则重新生成PDF文件。 经查询发现PdfPig库能够轻松实现PDF文件重新排列,该类库基于Apache-2.0 license,G 阅读全文
posted @ 2024-06-01 15:03 xhubobo 阅读(320) 评论(0) 推荐(0)
摘要: 由于xml文件的易读特性,使得它非常适合作为程序配置文件。和ini文件相比,xml文件可以实现列表等复杂参数配置,灵活性比较大。 使用C#读取xml文件,首先要加载xml文件获取XmlDocument对象,然后通过该对象获取XmlNode类型的根节点,之后再对根节点获取相应子节点的属性或值。写入xm 阅读全文
posted @ 2024-03-12 15:43 xhubobo 阅读(3103) 评论(0) 推荐(1)
摘要: 使用C#读写ini文件要用到Windows的API函数:GetPrivateProfileString、WritePrivateProfileString,下面对该方法进行封装并以具体ini文件为例说明如何读写。 1、ini文件示例 ; FTP服务器参数 [FtpServer] IP=127.0.0 阅读全文
posted @ 2024-03-09 16:57 xhubobo 阅读(842) 评论(0) 推荐(0)