
Qt
文章平均质量分 79
Qt相关的问题、demo
das白
这货很懒
展开
-
Qt QDockWidget详解以及例程
`QDockWidget`类提供了一个可以停靠在QMainWindow内的小窗口 (理论上可以在QMainWindow中任意排列),也可以作为QMainWindow上的顶级窗口浮动 (类似一个独立的窗口,可以通过拖动操作将`QDockWidget`浮动到任何位置),也可以选择限制DockWidget移动、浮动和关闭的能力,以及它们可以放置的区域。原创 2025-01-06 21:22:42 · 1314 阅读 · 0 评论 -
Qt Creator配置以及使用Valgrind - 检测内存泄露
Valgrind是一个在Linux平台下广泛使用的开源动态分析工具,它提供了一套丰富的工具集合,旨在帮助开发者检测和解决内存管理错误、线程同步问题以及优化程序性能。对于Qter来说,可以直接在Qt Creator配置`Valgrind`,输出的相关信息会逻辑清晰的显示在界面上。原创 2024-07-17 21:15:07 · 3302 阅读 · 1 评论 -
Qt 使用Installer Framework制作安装包
Qt Installer Framework (安装程序框架)是一个强大的工具集,用于创建自定义的在线和离线安装程序。它具有高度可配置性和可自定义性,适用于所有支持的Qt平台:Linux、Windows和macOS。并且其提供了清晰的文档和示例,帮助开发人员为应用程序创建安装程序。- 本文以Windows为例,简述其制作一个软件安装包的步骤。原创 2024-07-17 21:14:31 · 2938 阅读 · 0 评论 -
Qt 异步实现事件的定时执行 - QTimer和QThread的联合使用
在 Qt 中,如果想要定时执行某些事件或函数,通常会使用 QTimer 类。QTimer 允许设置一个时间间隔,当这个时间间隔过去后,它会发出一个信号。可以将这个信号连接到一个槽函数,从而在该时间间隔到达时执行特定的操作。如果想要实现定时的操作是异步执行 (不阻塞主线程),可通过`moveToThread`将定时器移动到一个线程中,信号和槽的连接类型使用`Qt::DirectConnection`,保证槽函数执行是在定时器的线程中。效果如下图所示 (一秒执行一次)原创 2024-07-09 20:49:42 · 1840 阅读 · 0 评论 -
Qt 创建的窗口一闪而过【已解决】
创建的窗口一闪而过,就是创建完立马被销毁了,常见情况是在一个函数中创建窗口并show() - `即创建在了栈上,函数结束局部变量(窗口)自动被释放`。主流的解决方法有两种:- 1. 使用指针 `new一个窗口`,函数结束也不会被释放,但是容易造成内存泄露,需`记得释放内存`- 2. 使用 `loop.exec();`进行阻塞,容易造成死循环,需`记得退出事件循环loop`原创 2024-07-09 20:49:21 · 1891 阅读 · 0 评论 -
Qt Creator配置以及使用Git
Qt Creator配置Git之后,可以看作是一个拥有图形用户界面 (GUI) 的Git,可以高效、可靠地使用 Git,并提供常用命令行操作,且可跨平台,适合Qter。原创 2024-07-03 20:59:35 · 3737 阅读 · 0 评论 -
Qt Q_ASSERT详解
`Q_ASSERT`是 Qt 框架中的一个宏,用于在调试时检查某个条件是否为真。它是程序调试中的一个重要工具,有助于开发者在开发过程中及时发现并修复潜在的错误。原创 2024-07-03 20:58:47 · 1804 阅读 · 0 评论 -
Qt 基于FFmpeg的视频播放器 - 播放、暂停以及拖动滑动条跳转
- 本文基于`FFmpeg`,使用Qt制作了一个极简的视频播放器. 相比之前的版本,加入了`播放`、`暂停`、`拖动滑动条跳转`功能,如上所示 (`左图`):- 使用`AVSEEK_FLAG_ANY`可以精准跳转到某一帧,但会出现花屏 (`左图`).- 使用EV录屏,再使用本软件将其转为gif (`左图`),再`GifCam`截取本软件转gif的过程 (`右图`),`GifCam`无法截取鼠标.原创 2024-06-24 18:28:36 · 1486 阅读 · 0 评论 -
Qt 信号与槽的使用详解 - 多种绑定形式、同步异步、Lambda表达式等
在Qt框架中,信号与槽(Signals and Slots)机制是一种强大的通信方式,它允许对象之间进行通信而无需知道彼此的详细实现。这种机制是Qt的核心特性之一,广泛应用于事件处理和对象间的通信,能够大大简化编程的复杂性,提高代码的可维护性和可扩展性。原创 2024-06-24 18:28:06 · 2624 阅读 · 0 评论 -
Qt 窗口居中显示
窗口居中可以提供良好的视觉效果、突出重点内容、提升用户导航和操作的便利性,有助于改善用户体验。- Qt一般情况下,其Mainwindow或弹出的窗口默认就是居中的,但是也有特殊情况:这就需要将窗口移动到屏幕中心. 以下介绍几种常用的居中方式(`大同小异`):原创 2024-05-31 10:28:43 · 3378 阅读 · 0 评论 -
Qt QProcess调用外部程序,并实时打印输出信息
> QProcess是Qt框架中的一个类,用于处理外部进程。它提供了一种直接与操作系统的进程进行交互的方式,可以启动一个外部程序,与其进行通信,获取其输出和错误信息,以及控制其运行。- `本文写了一个QProcess的试例,调用一个程序并实时获取其打印的信息.`原创 2024-05-31 10:28:22 · 2365 阅读 · 0 评论 -
Qt 基于FFmpeg的视频转换器 - 转GIF动图
之前写过一个基于python的 [MP4视频转GIF动图],速度略慢且不容易打包 (体积很大),故基于c++写一个小程序,方便日常使用. (这里推荐几个gif生成的小工具 - `GifCam`、`ScreenGif.exe`、`LICEcap.exe`等等 or 直接使用`ffmpeg`提供的小工具) - 本文思路:基于`FFmpeg`进行视频的读取解码成一张张图片,调用`gif.h`将图片写入gif原创 2024-05-29 19:26:10 · 1287 阅读 · 0 评论 -
Qt 配置Eigen矩阵库 - 并简单测试
Eigen是一个开源的C++模板库,提供了线性代数和矩阵运算的功能。它被设计为一个高性能、可扩展和易用的库,可以用于科学计算、机器学习和计算机图形学等领域。`本文主要说明如何在Qt中配置Eigen 以及 写了一个低通滤波器小Demo进行测试 - 如上图所示`原创 2024-05-29 19:25:41 · 3241 阅读 · 0 评论 -
Qt 界面上字体自适应控件大小 - 随控件缩放
Qt控件自适应字体大小可以用`adjustSize()`函数,但字体自适应控件大小并没有现成的函数可调. - 本文实现了按钮上的字体随按钮大小变化而变化 (如上图所示) - 其他控件同理。- 核心思路:`根据控件的大小变化,同步调整字体的大小` - 重写`resizeEvent`函数原创 2024-05-22 22:02:10 · 3726 阅读 · 0 评论 -
Qt 界面上控件自适应窗体大小 - 随窗体缩放
添加布局,设置控件的`minimumSize`、`maximumSize`和`sizePolicy`可以使其跟随窗体进行自适应缩放 - 如上图所示。原创 2024-05-22 22:01:53 · 19679 阅读 · 0 评论 -
Qt 基于FFmpeg的视频播放器 - QtFFmpegPlayer
- `本文基于FFmpeg,使用Qt制作了一个极简的视频播放器. 如图所示:`- FFmpeg版本信息:`ffmpeg-n7.0-latest-win64-lgpl-shared-7.0`原创 2024-05-10 23:59:17 · 2772 阅读 · 2 评论 -
Qt Excel读写 - QXlsx读取Excel文件显示到QTableWidget
`QXlsx`官方显示的例子中,有一个`XlsxFactory`可以Load xlsx file and display on Qt widgets.但是其包含商业许可....自己写了一个简化版本:`可以读取Excel文件,显示到QTableWidget上 (如上图所示),也可在QTableWidget上进行修改,再保存到Excel文件中。`- `本文只考虑了单元格合并情况,其他格式问题暂未处理 (字体、颜色等)`原创 2024-05-10 23:46:17 · 2708 阅读 · 2 评论 -
Qt Creator中变量与函数的注释 - 鼠标悬浮可显示
> 代码注释在软件开发中起着至关重要的作用。它们不仅有助于开发者理解和维护代码,还能促进团队协作,提高代码的可读性和可维护性。适当的注释应该是简洁明了、有针对性的,能够真正帮助其他开发者以及未来的自己理解和使用代码。本文主要针对c++类中的变量和函数. 鼠标悬浮或写代码时有相关注释提示。原创 2024-04-28 19:02:33 · 1790 阅读 · 7 评论 -
Qt Debug模式下应用程序输出界面乱码【已解决】
源码为utf-8编码. - Qt Creator在`Debug模式`下运行程序,下方应用程序界面显示`乱码`. 但正常运行无乱码- 解决方案:语言->管理语言设置->更改系统区域设置->beta版UTF-8我使用以上方法无效,应用程序输出依旧为乱码。但是设置为run in terminal可以正常输出中文..原创 2024-04-19 21:11:25 · 3432 阅读 · 2 评论 -
Qt 项目文件(.pro)概述
Qt工程项目由项目文件`(.pro)`进行管理。qmake使用文件中的信息生成Makefile,其中包含构建每个项目所需的所有命令。`pro`文件通常包含源文件和头文件的列表、常规配置信息以及任何特定于应用程序的详细信息,例如要链接的额外库的列表,或要使用的额外包含路径的列表。原创 2024-04-19 21:01:22 · 1398 阅读 · 0 评论 -
Qt FFmpeg开发环境配置以及测试 - 不编译源码
`FFmpeg`是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它采用了LGPL或GPL许可证,并提供了录制、转换以及流化音视频的完整解决方案。本文主要介绍如何在Qt中配置FFmpeg。原创 2024-03-29 17:43:51 · 911 阅读 · 0 评论 -
Qt Linux下调用OpenGL的glu.h报错:error: GL/glu.h: No such file or directory
在Windows上正常运行的OpenGL程序,到Linux下突然报错..找不到`glu.h`。解决过程略曲折,特此记录问题以及解决方案,顺便留下解决过程方便复盘..原创 2024-02-26 20:08:04 · 1888 阅读 · 0 评论 -
Qt OpenGL程序在Windows下正常,但在Linux下无显示问题【已解决】
在Windows上正常运行的OpenGL程序,到Linux下正常编译…但是`没有任何显示(只有背景颜色)`。解决过程略曲折,特此记录问题以及解决方案,顺便留下解决过程方便复盘…原创 2024-02-26 20:07:15 · 1047 阅读 · 0 评论 -
Qt 基础之进度条 - QProgressDialog和QProgressBar
`进度条`的作用是用于显示任务或操作的进度,以便用户了解当前任务的完成情况。它可以提供实时、可视的反馈,让用户知道任务的进展情况,以及剩余的时间或工作量。进度条可以用于各种应用场景,比如文件下载、软件安装、视频播放、上传文件、数据处理等,帮助用户更好地管理和掌控任务的执行。- `QProgressDialog`和`QProgressBar`用来是Qt框架中用于显示进度条的两个类,它们都是基于QWidget的派生类,用于在应用程序中显示任务的进度。原创 2024-02-21 19:54:05 · 6008 阅读 · 0 评论 -
Qt OpenGL - 三维坐标系 (带刻度标签)
在OpenGL进行3D可视化,绘制网格形式的坐标系则能更清晰的展示所画图形位置。由于OpenGL本身并没有绘制文字的功能,所以想要显示刻度标签或者一些其他标签需要自己手撸代码。Qt的` QOpenGLWidget `可以较方便的解决这个问题,其可以在OpenGL绘制之后,使用`QPainter`继续绘制2D图形或文字标签。原创 2024-02-07 09:27:14 · 2755 阅读 · 2 评论 -
Qt Excel读写 - QXlsx的安装配置以及测试
Qt无自带的库处理Excel 文件,但可通过`QAxObject `借助`COM`接口进行Excel的读写。亦可使用`免费的开源第三方库:QXlsx`,一个基于Qt库开发的用于读写Microsoft Excel文件的C++库。它提供了一组简单易用的API,可以方便地创建、修改和操作Excel文件。原创 2024-01-30 18:41:22 · 3619 阅读 · 2 评论 -
Qt 基础之QDataTime
QDataTime`是Qt框架中用于处理日期和时间的类。它提供了操作和格式化日期、时间和日期时间组合的功能。QDataTime可以用于存储和检索日期和时间、比较日期和时间、对日期和时间执行算术操作以及将日期和时间转换为不同的格式。(注:QDateTime不包括闰秒。)原创 2024-01-30 18:41:01 · 1994 阅读 · 0 评论 -
Qt OpenGL初探 - 画坐标轴
OpenGL使软件开发人员能够在CAD、内容创建、能源、娱乐、游戏开发、制造、医疗和虚拟现实等市场中创建高性能、视觉吸引力强的图形软件应用程序。`Qt OpenGL`模块可以很方便地将OpenGL应用在Qt程序中,本文使用其画了一个3D坐标轴,并详细讲解了具体的编码过程与官方手册的使用。原创 2024-01-13 14:24:04 · 2945 阅读 · 0 评论 -
Qt OpenGL - 网格式的直角坐标系
在OpenGL进行3D可视化,只绘制三条坐标轴略显单薄,而绘制网格形式的坐标系则能更清晰的展示所画图形位置。原创 2024-01-13 14:25:04 · 1654 阅读 · 0 评论 -
Qt5 安装教程 - 跳过登录界面
Qt5.14.2及以前的版本有离线安装包,无需登录 (老版本连登录界面也无)。之后的版本需登录进行在线安装。本文以`Qt5.12.2`版本为例,说明如何`跳过登录界面`,并尽可能详细地说明安装的每一步...原创 2024-01-01 18:54:40 · 7763 阅读 · 0 评论 -
Qt qInstallMessageHandler详解
`qInstallMessageHandler`用于安装自定义的消息处理程序,返回指向上一个消息处理程序的指针 (**此函数在Qt 5.0中被引入**):- 函数原型:QtMessageHandler qInstallMessageHandler(QtMessageHandler handler) 这个函数允许码农完全控制Qt库中产生的警告、错误等消息的输出,改变Qt库的默认行为,对于调试应用程序,或者记录应用程序的运行过程非常有用。原创 2023-10-16 19:02:08 · 3765 阅读 · 0 评论 -
python MP4视频转GIF动图
将MP4格式的视频转为GIF动图可以方便地向他人展示动画效果。GIF是网络上广泛使用的图像格式之一,几乎所有的网页浏览器和客户端都支持,其兼容性较好。比如可以直接插入到PPT中、或是在微信上发给别人、或者`直接插入到优快云博客中`,但是MP4等视频格式的文件显然不行。- 常用的免费在线转换网站上不去了,好多其它网站需要注册,本作者亲自写一个方便日常使用。原创 2023-09-21 20:56:32 · 839 阅读 · 0 评论 -
【三维几何学习】自制简单的网格可视化软件 — Mesh Visualization
本是为了方便输入模型分析、网格分割结果可视化做的一款小软件,后续通过增删变成了Mesh Visualization,主要针对`三角形网格`。主要功能包括:读取网格(目前仅支持.obj),关于网格顶点、边、面的一些可视化小操作(是否显示、更改颜色等)、比较简单的灯光以及背景设置、一些基本功能(模型列表、操作日志等)。原创 2023-11-22 22:30:41 · 635 阅读 · 0 评论 -
Qt VS2017添加Qt窗体
习惯用Qt Creator编写Qt程序,使用VS都不会创建QWidget了.... 在VS的解决方案上中右键->添加->新建项 选择Qt,并没有找到Qt Widgets Class之类的选项,只有Form file原创 2022-09-27 15:19:30 · 2936 阅读 · 0 评论 -
Cloudcompare 界面解读与界面修改
Cloudcompare功能强大,界面让人看着眼花缭乱,但是我们往往只需要部分功能,故尝试对界面进行简化和修改。原创 2022-09-24 21:05:02 · 2023 阅读 · 5 评论 -
Cloudcompare 设置点的颜色和大小
Cloudcompare 遍历设置每一个点的颜色,和所有点的大小原创 2022-08-09 15:08:49 · 10058 阅读 · 1 评论 -
Cloudcompare 点到平面的距离以及点到平面的投影点
本文重点介绍Cloudcompare 中以下两点:- 计算点到平面的距离(平面-由参考点云上的部分点拟合求得)- 求得点到平面的投影点坐标原创 2022-07-15 17:59:13 · 4620 阅读 · 0 评论 -
Qt QChart画折线图 - 点标签
QChart画折线图 - 点标签原创 2022-07-14 07:00:00 · 5365 阅读 · 7 评论 -
Qt QCustomPlot简介
QCustomPlot 是一个用于绘图和数据可视化的 Qt 库2,使用C++编写。其可以导出为各种格式,应用于数据的实时显示和高质量图像的导出。功能强大原创 2022-07-14 07:30:00 · 573 阅读 · 1 评论 -
Cloudcompare 非插件初探
Cloudcompare 非插件初探一、先看效果二、代码实现2.1 头文件增加代码一、先看效果二、代码实现2.1 头文件增加代码mainwindow.h原创 2022-05-06 11:18:39 · 2647 阅读 · 0 评论