- 博客(434)
- 资源 (30)
- 收藏
- 关注
原创 Qt输入法(支持中文拼音输入、英文输入、数字输入、常用符号输入、手写输入、实体键盘同步)
有用过Qt虚拟键盘的同志都知道,Qt的虚拟键盘确实很强大,特别是Qt5自带的的虚拟键盘,支持多国语言输入,拼音自然不在话下,而且采用界面是采用qml来做的,美观、大方,但是也存在很多鸡肋的地方(商业版的Qt可能不存在,会更完善)。Qt自带的虚拟键盘支持手写输入,但是只有myscript,t9write,lipi-toolkit三种库,myscript,t9write很强大,支持多国语言手写输入,但是收费,要在Qt收费版中才能体验到;lipi-toolkit免费,Qt社区版已包含,但是只支持英文手写输入。
2025-11-18 08:55:38
271
原创 使用zinnia+qml制作手写输入法
经过多次测试,识别效率不是很高,识别也不是太精准。4.编译并安装数据文件:(zinnia识别需要的数据)library(zinnia源码包)handwriting.pro文件。然后就可以编译qt并运行喽。main.cpp文件。
2025-11-17 14:31:29
336
原创 QML Profiler性能优化教程
或者有很多在视觉上看不到的元素,例如xy为-1000这样的Item,没有被隐藏,这些Item照样会渲染,照样会有性能开销,对于这些元素可以将visible设置为false,直接影藏掉,这就不会有渲染耗时了。越小的块表示时间越短,反之越大的块,表示时间越长。而所有缓存的图片,都会在这里显示,包括用了多少像素的缓存,还包括了图片的加载耗时、文件名等信息。这里显示渲染时各个阶段的耗时,如果我们发现程序的动画有卡顿,除了一些函数的阻塞导致的卡顿外,还可以分析一下渲染的耗时开销,看看是不是渲染的量太大导致的卡顿。
2025-10-11 14:10:49
1033
原创 文字转语音——sherpa-onnx语音识别离线部署C++实现
把动态库文件目录(\third_party\sherpa-onnx-v1.11.2-win-x64-shared\lib文件夹)下的onnxruntime_providers_shared.dll和onnxruntime.dll从动态库目录复制到sherpa_onnx.exe同级目录(\x64\Release)下。sherpa-onnx-cxx-api.dll文件是我们的动态库文件,在项目内\third_party\sherpa-onnx-v1.11.2-win-x64-shared\lib文件夹下。
2025-09-27 19:49:59
875
1
原创 使用gsettings修改命令ubuntu快捷键
2. 该文件包含一组节点, 该节点与界面操作键盘快捷键(system settings-> keyboard->shortcuts)一一对应.1. 在目录/usr/share/gnome-control-center/keybindings中,可以找到一组xml配置文件。ubuntu中除了使用界面修改键盘快捷键外,还可以使用命令行修改键盘快捷键.3. 使用gsettings设置Alt-F4不关闭界面.5. 设置"close"关闭界面快捷键.此时Alt-F4将关闭快捷键.此时Alt-F4将不起效果.
2025-09-22 16:52:13
824
原创 解决Ubuntu安装QT:From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
【完整报错】From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.这是我参考一篇博主的解决办法:https://blog.csdn.net/m0_64405299/article/details/137184349。2、需要安装xcb-cursor0 库。3、最后重新点击QT就能成功启动了。
2025-09-13 11:48:19
504
原创 Ubuntu24.04 x86在Qt6.8.2 上交叉編譯 arm64
本篇在Ubuntu 24.04 x86環境下交叉編譯Arm64,成功地在Qt 6.8.2當中上使用。提示:以下是本篇文章正文内容,下面案例可供参考一、安裝Qt 6.8.2使用Qt官方進行下載,若遇到下載失敗,請自行尋找另外下載點。相關依賴和版上幾偏差不多依照需求安裝即可安裝勾選 (依照自己需求勾選)添加工具環境變數/* 添加CMake && Ninja 環境變數 */本文介紹了如何在x86環境下交叉編譯arm64,最後在Qt 6.8.2上成功執行。
2025-08-28 17:09:50
508
原创 Windows11 上使用 QEMU 创建 aarch64(ARM64)虚拟机
drive if=none,file=F:\QEMU\openEuler-20.03-LTS-SP3-aarch64-dvd.iso,id=cdrom,media=cdrom 指定光驱使用镜像文件。-drive if=none,file=F:\QEMU\openEuler-20.03-LTS-SP3-aarch64.img 指定硬盘镜像文件。-device nec-usb-xhci -device usb-kbd -device usb-mouse 启用USB鼠标等设备。
2025-08-28 16:50:23
908
原创 基于 Windows 平台利用 QEMU 部署 ARM 架构的虚拟机
本文介绍了在Windows平台上使用QEMU部署ARM架构虚拟机的方法。主要步骤包括:安装QEMU软件、配置环境变量、安装虚拟网卡并共享物理网卡、创建虚拟磁盘镜像,最后通过qemu-system-aarch64命令安装Kylin ARM版操作系统。文章重点说明了安装过程中的关键参数配置,如内存分配、CPU类型指定等,并提示安装过程较慢需要耐心等待。此外还提供了SSH安装和网络共享问题等常见问题的解决方法。通过QEMU模拟ARM环境,开发者可以在不依赖实际硬件的情况下进行跨平台开发和测试,有效提高开发效率。
2025-08-28 16:40:48
2549
1
原创 QML(2) - Qt 中如何注册一个 C++ 类到 QML
QT5.15 之前的传统用法前言在进行 Qt Quick 开发时, 有些需求是无法在 QML 中实现的,我们必须要使用C++中的方法来完成它,这个时候我们就需要实现 QML 与 C++ 的混合编程。通常我们会先把需要的功能在 C++ 中全部完成,然后在 QML 中直接调用 C++ 中的方法。博主查看了Qt的帮助文档发现一共有两种方法可以实现。方法一:在QML系统中注册C++类型官方文档说明:具体步骤如下:1. 实现C++类的功能;
2025-08-27 17:54:34
1007
原创 QML-用C++语言编写QML对象类型
本文介绍了如何在Qt中使用C++自定义QML对象类型的方法。主要内容包括:1)通过QML_ELEMENT等宏声明C++类为QML可用类型;2)单例对象的特殊处理方式;3)无法修改源代码的第三方类的注册方法;4)完整的注册流程,包括在.pro文件中配置相关参数。文章通过具体示例,详细说明了如何将C++类注册为QML可用的对象类型,便于在QML程序中直接使用这些自定义类型。
2025-08-27 16:52:27
836
原创 VMware 使用 Ubuntu 一段时间后逐渐卡顿、甚至卡死的问题
vmware与windows的Hyper-v不兼容由来已久,想要使用虚拟机就必须把本地的虚拟化功能关了,虽然现在vm的版本更新中显示可以与Hyper-v兼容,其实vmware 16pro只是给了一个选项,但实际上当使用虚拟机开启虚拟化后还是不能打开虚拟机,还是应该是需要把本地虚拟化关闭之后才能使用。3、因为是Windows 11专业,检查Hyper-V (这里如何没有Hyper-V 请继续看下面的解决方法)是否已安装。虚拟机平台 打开----请把此项前的“√”取消。1、打开记事本输入以下命令。
2025-08-10 17:15:30
1607
2
原创 C++ 实现 查找进程, 杀死进程, 启动进程, 进程重启
杀死进程: 就是通过遍历所有的启动的进程, 然后查找进程ID, 调用winapi将其杀死, 代码实现如下。查找进程: 就是调用windowApi遍历所有启动进程, 实现如下。启动进程: 就是给出进程名绝对路径, 然后调用winapi启动。程序重启流程: 1: 先查找需要重启的程序进程Id。3: 杀死第一步的进程id。2: 启动需要重启的程序。
2025-05-30 11:01:05
414
原创 详细介绍一下C++中的extern关键字
若多个文件同时定义(而非声明)同名全局变量,会导致链接错误。正确做法:仅在一个文件中定义,其他文件用 extern 声明。核心作用:跨文件共享数据或函数,避免重复定义。关键规则extern 是声明而非定义(不分配内存)。使用 extern "C" 兼容C代码。全局变量需在头文件中用 extern 声明,在源文件中定义。常见错误头文件中直接定义全局变量(导致重复定义)。忘记在某个源文件中提供 extern 变量的定义(链接错误)。
2025-05-29 09:48:29
859
原创 QT6.5 的交叉编译
QT6.5](Qt 6.5 Release - Qt Wiki) 是目前(2023.4.23)最新的LTS版本,整体构建基础也和QT5不同,由原来的qmake迁移到了更通用和流行的CMake上,所以新版本的交叉编译等都有一定的变化,本文主要针对其中的不同进行一个简单记录,并以一个简单的程序为例来进行说明。页面,这里可以看到有我们需要的windows宿主机的工具链,但是版本不对,我们查看更多。这里的安装是必要的,因为QT6.5的交叉编译需要依托宿主机已编译安装好的QT6.5。文件夹,进入并打开终端,执行。
2025-05-28 17:57:45
850
原创 Ubuntu20.04配置aarch64的Qt6环境(亲测有效)
网上大多数文章都是针对Qt5版本的配置(不编译源码的话,搭建Qt5环境只需要半天(ˉ▽ˉ;)...),按照这些步骤进行Qt6的配置踩了很多坑,现在把我配置Qt6的整个过程记录下来,有这方面的需求可以参考一下,耗时一周多,属实不易/(ㄒoㄒ)/~~
2025-05-26 18:58:06
2018
1
原创 vmware17 虚拟机 ubuntu22.04 桥接模式,虚拟机无法接收组播消息
在一个项目中,宿主机win10中,使用的vmware17pro 虚拟机安装的ubuntu22.04,按照网上的教程使用Qt绑定组播消息,在另外一个Ubuntu工控机上发送用wiresahrk抓包的组播消息宿主机和虚拟机的防火墙都关了,使用的桥接网络,但是虚拟机一直无法接收到组播消息,在虚拟机内部用wireshark也抓不到数据包,网上的方法基本都试了也没找到原因。
2025-04-18 11:23:42
688
2
原创 Visual Studio 2022 QT5.14.2 新建项目无法打开QT的ui文件,出现闪退情况
如上图,选择32还是64位,看你需要选择,本文选择是mingw73_64->bin目录下的designer.exe:\。双击.ui文件即可,如果还是打开异常可以尝试关闭Visual Studio 再打开。点击打开即可,如果打开还是异常,关闭Visual Studio 再双击文件即可。本文使用第一种方法未见效,于是开始尝试第二种方法,本文使用第二种方法是可用的。项目上右键-> 在文件。
2025-03-31 16:27:42
1629
2
原创 在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式
在 VMware Workstation 17 中安装的 Ubuntu 虚拟机无法使用桥接模式时,通常是由于。临时关闭主机防火墙或安全软件(如 Windows Defender、360),测试是否干扰桥接。以下是详细的排查和解决方法:我采用第一步就解决了问题。主机必须连接到物理网络(路由器或交换机),且能正常上网。如果是企业/校园网,可能限制桥接模式(需联系网管)。无线网络:选择 Wi-Fi 适配器(如。有线网络:选择以太网适配器(如。关闭 Ubuntu 虚拟机。
2025-03-26 18:27:10
1219
原创 解决Vmware 运行虚拟机Ubuntu22.04卡顿、终端打字延迟问题
的问题,不知道那个版本的驱动不会出现这个问题,所以干脆把加速关了)亲测可用 打开虚拟机设置,关闭加速3D图形。
2025-03-26 15:24:52
2453
2
原创 Qt 和 QML开发环境安装(版本6.8.2)
在安装 Qt 时遇到下载错误,特别是出现 "Forbidden" 错误,通常是由于网络连接问题或镜像服务器限制导致的。有时,某些地区的网络可能会限制访问特定的服务器。使用 VPN 或代理服务器可以绕过这些限制。确保你的网络连接正常,尝试访问其他网站以确认网络没有问题。打开 Qt 安装程序。在安装程序的欢迎页面,点击设置按钮。然后重新启动安装程序。还是出现了下载错误。
2025-03-20 10:26:43
441
原创 从 auto 到 Lambda:全面解析 C++11 核心新特性
初始器列表(Initializer Lists)为C++11提供了一种强大的初始化机制,特别是在初始化需要一组值的对象时。通过使用初始器列表,可以极大地简化代码,提高可读性和可维护性。这一特性在自定义类、函数参数传递时尤为有用。// 检查 ptr 是否为空C++11引入了用户自定义字面量(User-Defined Literals, UDL),允许开发者定义自己的字面量操作符,为字面量赋予新的含义。这通过定义一个以开头的字面量操作符函数实现。
2025-03-18 16:47:14
942
原创 OpenCPN安装与海图下载探索
是我们的错 告诉您使用哪个版本的一种方法是,V2拥有额外的图表文件夹以及包括.EXD文件的额外文件。通常 ,在正确地理参考的情况下,可以使用gif,jpeg,pdf,png,tif,bmp和其他格式的海图图片生成栅格图。作为OpenCPN的一部分创建的,目的是为用户提供价格合理的可靠,最新的图表,这些图表来自公认的来源,适用于无法提供免费和高质量图表的区域。如果某个图表被称为S57 Vector图表,并且文件尾部不同,则可能是SENC文件,这是专用于特定平台的“ .000”图表文件的处理版本。
2025-03-08 11:47:29
1929
原创 vscode工作区看不清光标
这时鼠标指针在非停留状态(指针移动时就看不清),需要改下系统的鼠标指针设置,而不是vscode的光标设置问题。有的时候当我们把vscode的背景色设置成黑色或者默认黑色时。
2025-03-04 19:14:25
780
原创 Sourcetrail 代码分析工具
Sourcetrail 是一个代码分析工具,它旨在帮助开发人员理解和导航复杂的代码库。它可以创建代码库的可视化图形,显示代码中的类、函数、变量、依赖关系等信息,从而帮助开发人员更好地理解代码结构和关系,降低维护和开发过程中的复杂性。Sourcetrail 通过图形化的方式展示代码库的结构和关系,使开发人员能够更容易地理解和浏览代码。开发人员可以通过 Sourcetrail 快速导航代码库,跳转到特定的类、函数或变量,并查看其定义、引用和调用。
2025-03-04 14:36:50
1152
原创 1、OSG源码编译[Windows10+Ubuntu]
在最后生成(make)osgPlugins部分的时候,这里有很多部分,其中的ffmpeg和RestHttpDevice两个东西出错,是版本的问题,为了快速完成且基本上用不到,就将其从编译中剔除。也可以不设置,只是要很长的路径。生成过程中可能会报错,我遇到的是关于MFC相关的,需要在Examples osgviewerMFC项目中的stdafx.h文件中添加如下代码。**第四步:**生成了之后,再次回到批生成中,选择INSTALL,如下图,安装之后会在之前cmake中设置的安装目录中输出相关数据。
2025-02-11 18:16:28
826
原创 QT +FFMPEG4.3 拉取 RTMP/http-flv 流播放 AVFrame转Qimage
【代码】QT +FFMPEG4.3 拉取 RTMP/http-flv 流播放 AVFrame转Qimage。
2025-02-06 19:08:16
611
原创 【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
例如,在我们的代码中,我们使用的是 QImage::Format_RGB32 格式,这意味着每个像素由 4 字节(32 位)的数据表示,每个颜色通道(红色、绿色、蓝色和透明度)各占 8 位。然后,我们打印了这个图像的宽度、每个像素的字节数、每行的字节数(通过计算得到的)和每行的实际字节数(通过 bytesPerLine() 方法得到的)。答案是,虽然在大多数情况下,每行的字节数确实等于图像的宽度乘以每个像素的字节数,但是在某些情况下,为了满足内存对齐的要求,每行的末尾可能会添加一些填充字节。
2025-02-06 19:00:51
1208
原创 深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(二)
在我们深入探讨了FFmpeg视频解码后的处理技术之后,现在我们来做一个全面的总结。首先,我们需要明确一点,视频解码后的处理是一个复杂且需要精细操作的过程。这个过程涉及到多个步骤,包括从AVFrame(音视频帧)到QImage(图像)的转换,图像数据的处理,以及高级应用等等。在从AVFrame到QImage的转换过程中,我们首先需要获取到AVFrame的基本属性,包括宽度(width)、高度(height)和格式(format)。然后,我们需要创建一个QImage对象,并设置其格式为RGB32。
2025-02-06 16:01:21
1063
原创 深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(一)
在Qt框架中,QImage是一个用于处理图像数据的类,它提供了丰富的函数和方法,可以方便地进行图像的创建、读取、保存、转换等操作。在视频解码后的处理中,我们通常需要使用SwsContext来将AVFrame的像素格式转换为QImage所支持的格式,并进行必要的缩放操作。在处理视频解码时,我们可以先将解码后的数据保存在内存中,等到所有的数据都处理完后,再统一释放内存。无论我们需要进行什么样的操作,只要我们理解了FFmpeg的基本概念和数据结构,我们就可以利用这些工具来完成我们的任务。
2025-02-06 15:52:56
1064
原创 C++中前向声明比include好吗?
当在一个文件中同时存在前置声明和 语句时,编译器的行为主要取决于你如何使用相关的类: 前置声明仅用于指针或引用:如果你只使用了类的指针或引用,那么前置声明就足够了。在这种情况下,即使有对应的 存在,编译器也只会根据前置声明来识别这个类名的存在。使用类的具体功能:如果你尝试创建一个类的对象、继承自该类、访问其成员变量或调用成员函数,则必须提供类的完整定义。这意味着你需要通过 来包含相应的头文件。如果仅依赖于前置声明而没有包含必要的头文件,会导致编译错误。顺序无关紧要:无论是在文件顶部先进行前置声明然后
2025-02-06 14:30:14
368
原创 C++的类声明、前置声明、定义及各自优势、使用场景
这样的形式,告诉编译器这个类的存在,但不需要知道具体细节。或者在一个头文件中只需要用到某个类的指针或引用时,不需要包含整个类的头文件,减少编译时间。而类定义则是必须的,当需要实际使用类的成员时,必须要有完整的定义。还需要注意一些常见的陷阱,比如前置声明后不能直接使用类的成员,因为编译器不知道类的布局。总结下来,回答的结构应该是先分别解释这三个概念,然后比较它们的优缺点,再给出适用场景,最后结合实际例子说明如何正确使用。嗯,用户现在问的是关于C++中的类声明、前置声明、定义以及它们的优势和适用场景。
2025-02-06 13:58:47
1049
原创 下载 Qt 库 pdb 文件(Windows平台)
如果没有使用 qtscript、qtpurchasing、qtcharts 等非基础模块,则下载包含。的文件夹,选择对应的编译器版本、平台位数,点击进去。否则还需要下载非基础模块对应的 pdb 文件。5. vs2022加载pdb目录。
2025-02-06 11:29:03
791
1
手写识别开发 qml-handwriting-master , zinnia-0.06.tar, tegaki-zinnia-simplified-chinese-0.3.zip
2025-11-17
银河麒麟V10环境下 netcdf-c-4.9.2, netcdf-cxx-4.3.1相关库
2024-04-19
HLMSEditor/bin目录下缺少的dll文件
2023-05-24
CGAL Arrangements and Their Applications A Step-by-Step Guide.rar
2020-02-15
架构探险——从零开始写Java Web框架 绝对完整!强烈推荐
2019-01-16
《跟老男孩学习Linux运维:Shell编程实战》带标签目录 绝对完整!!!
2019-01-09
跟老男孩学linux运维 核心系统命令实战-高清-完整-带目录 绝对完整!!! 绝对完整!!!
2019-01-09
跟老男孩学linux运维 web集群实战
2019-01-09
xshell5安装配置.docx
2020-02-25
jquery官方指定教材三本
2017-06-18
java se 8.0 pdf
2017-03-09
java Threads and the Concurrency Utilities
2017-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅