▶ Qt扫盲
文章平均质量分 84
基本的Qt读书整理笔记,包括各种类的说明
太阳风暴
技术圈里摸爬滚打的编程小白,记录学习过程中的分享、研究和总结,钟爱C、C++、C#后端语言,钟爱微信小程序快速开发,常乐村男子职业技术老油条,本科修行已完成(√),修炼进阶研究生中(......)愿望:全栈大佬 ( 全栈进度 68%)
GIT地址:https://gitee.com/sunstom、
https://github.com/add-uos、
https://github.com/SunStorm2018
展开
-
Qt 阶段性回顾笔记
这篇博客其实就是一个笔记的规划、进度记录和监督自己总结的一个博文。我会一直补充更新着。接触Qt快已经3年了(主要是C++语言),从最初接触项目的无知和迷茫,到现在的大致了解,中间是一段惊心动魄的挣扎,和不断的尝试和试错。我觉得也是很有必要把自己所学习的内容大致梳理一下,把在项目中经常使用的东西也记录一下,在这个阶段性的时候。总结也是查漏补缺的一种手段。原创 2022-12-11 22:25:19 · 2560 阅读 · 4 评论 -
Qt扫盲-QRect矩形描述类
QRect类使用整数精度在平面中定义一个矩形。在绘图的时候经常使用,作为一个二维的参数描述类。一个矩形主要有两个重要属性,一个是坐标(x,y),一个是尺寸(长宽)。所以QRect的构造函数也是这样描述的。QRect可以用一组左、顶、宽、高整数来构造,也可以用QPoint和QSize来构造。下面的代码创建了两个相同的矩形。还有第三个构造函数,它使用左上角和右下角的坐标创建QRect,但我们建议我们避免使用它。原创 2024-07-02 14:16:06 · 976 阅读 · 0 评论 -
Qt扩展-轻量数学公式计算
这个是我写得简单的一个数学计算公式工具。easy-math-parser 是一个用C++编写的简单工具包,支持四个操作字符串的计算工具,灵感来自Muparser。在这个小工具中,我实现了一个更简单、更高效的解析器。支持四种运算:加法、减法、乘除和求幂。当然,您还可以扩展其他二元运算符,例如对数。同时也是一个支持括号优先的表达式。原创 2024-06-20 19:30:40 · 573 阅读 · 0 评论 -
Qt扫盲-Qt D-Bus概述
D-Bus是一种进程间通信(IPC)和远程过程调用(RPC)机制,最初是为Linux开发的,用一个统一的协议取代现有的和竞争的IPC解决方案。它还被设计为允许系统级进程(如打印机和硬件驱动程序服务)和普通用户进程之间的通信。它使用快速的二进制消息传递协议,由于其低延迟和低开销,适合于同机通信。它的规范目前由 freedesktop.org 项目定义,所有各方都可以使用。通信通常通过称为“总线”(因此得名)的中央服务器应用程序进行,但也可以直接进行应用程序到应用程序的通信。原创 2024-04-29 21:32:21 · 1041 阅读 · 0 评论 -
Qt扫盲-QAssisant 集成其他qch帮助文档
QAssisant是一个很好的帮助文档,他提供了供我们在外部添加新的 qch帮助文档的功能接口,一般有两中添加方式。下面以 cmake 的qch 在 UOS 系统为例子添加流程。原创 2024-03-28 09:23:36 · 493 阅读 · 0 评论 -
Qt扫盲-D-Bus调试工具
在调试D-Bus时,如果只是在命令行下使用,效率并不是很高,我们可以使用更加直观的GUI工具来查看,我推荐使用 d-feet工具,这个能直观的查看系统总线和会话总线。原创 2024-03-22 14:47:11 · 440 阅读 · 0 评论 -
Qt扩展-muParser数学公式解析
muparser是一个高性能的数学计算表达式库,支持常用的函数、常用运算符、数学计算式的计算,这个库也提供了很多内置的功能、同时也开放了很多功能供用户使用数值常量字符串常量在数量上无限可在解析器运行时由解析器定义:abc=123根据其他变量赋值变量是可能的我们可以定义值的外观我们可以让muparser读取十六进制值,如a=0x00ff00或二进制值我们还可以使用此功能从数据库中查询值。原创 2024-01-31 20:02:22 · 2263 阅读 · 0 评论 -
Qt扩展-QXlsx读写Excel配置使用
QXlsx 是一个读写excel表格的库,可以在Qt5、Qt6上使用。也是我觉得很方便的一个库,我们可以用这个库去生成简单的报表文件。这个库支持qmake和cmake的方式引入,配置也非常简单,也是跨平台的一个库。这个库提供了像日历、图表、公式、图片、格式化、表格操作等功能。官方给的例程也非常多。原创 2024-01-27 14:51:51 · 1790 阅读 · 0 评论 -
Qt扫盲-QFutureSynchronizer 理论总结
QFutureSynchronizer类是一个简化QFuture同步的便捷类。QFutureSynchronizer是一个模板类,它简化了一个或多个QFuture对象的同步。使用 addFuture() 或 setFuture() 函数添加 Future。futures():返回一个Futures 列表。使用clearFutures() 从 QFutureSynchronizer 中删除所有的Future。原创 2023-11-08 23:45:25 · 225 阅读 · 0 评论 -
Qt扫盲-QFutureWatcher理论总结
QFutureWatcher类允许我们使用信号槽的方式去监控QFuture。QFutureWatcher提供关于QFuture的信息和通知。使用 setFuture() 函数开始监视特定的QFuture。future()函数通过setFuture()返回 QFuture 集合。原创 2023-11-01 22:35:52 · 699 阅读 · 0 评论 -
Qt扫盲-QFuture理论总结
QFuture 表示的是Qt里面异步计算的计算结果。要开始计算,使用Qt Concurrent框架中的一个api 即可。QFuture允许线程根据一个或多个结果同步,这些结果将在稍后的时间点准备好。结果可以是具有默认构造函数和复制构造函数的任何类型。如果在调用 result()、resultAt() 或 results() 函数时结果不可用,QFuture将等待,直到结果可用。我们可以使用 isResultReadyAt() 函数来确定结果是否准备好了。原创 2023-11-01 22:17:06 · 349 阅读 · 0 评论 -
Qt扫盲-QFontDatabase理论
QFontDatabase 类提供有关底层窗口系统中可用字体的信息。这个类最常见的用途是查询数据库中的字体系列列表()以及每个系列可用的 pointSizes() 和 styles()。pointSizes() 的另一种替代方法 是smoothSizes(),它返回给定的字体族和风格看起来有吸引力的大小。如果字体系列可从两个或两个以上的字体工厂获得,则字体工厂名称包括在字体系列名称中;例如:“Helvetica [Adobe]”和“Helvetica [cronix]”。原创 2023-10-31 22:19:33 · 401 阅读 · 0 评论 -
Qt扫盲-QFont理论总结
QFont类指定用于绘制文本的时候来描述字体的工具类。QFont可以看作是对系统上一个或多个字体的查询。当我们创建QFont对象时,我们可以指定希望字体具有的各种属性。Qt将使用具有指定属性的字体,或者如果没有匹配的字体存在,Qt将使用最接近匹配的已安装字体。实际使用的字体属性可以从QFontInfo对象中检索。如果窗口系统提供精确匹配,则 exactMatch() 返回 true。原创 2023-10-31 22:11:05 · 767 阅读 · 0 评论 -
Qt扫盲-QFontInfo理论
QFontInfo类提供了关于字体的一般信息,包括是否是加粗、是否是斜体、字体大小、字体名称等等,使用也非常简单,其实就是一个属性查询类而已。QFontInfo类提供了与QFont相同的访问函数,例如family(), pointSize(), italic(), weight(), fixedPitch(), styleHint()等。但是,当QFont访问函数返回设置的值时,QFontInfo对象返回应用于实际用于绘制文本的字体的值。原创 2023-10-25 14:30:00 · 280 阅读 · 0 评论 -
Qt扫盲-QPixmap理论总结
QPixmap 也是一个用得很多的描述图像的类,也是界面显示相关的时候用得很多的。QPixmap类是一个可以用作绘画设备的屏幕外图像表示。Qt提供了四个类来处理图像数据:QImage, QPixmap, QBitmap和QPicture。QImage是为I/O和直接的像素访问和操作而设计和优化的,而QPixmap是为在屏幕上显示图像而设计和优化的。QBitmap只是一个继承QPixmap的方便类,确保深度为1。如果QPixmap对象确实是位图,则isQBitmap()函数返回true,否则返回false。原创 2023-10-25 09:54:21 · 878 阅读 · 0 评论 -
Qt扫描-QMoive 理论总结
QMovie类是一个使用QImageReader播放 动画 的方便类。这个类用于显示没有声音的简单动画,一般即是 gif 动画。如果要显示视频和媒体内容,请使用Qt Multimedia多媒体框架。原创 2023-10-24 12:02:39 · 478 阅读 · 0 评论 -
Qt扫盲-QImage 理论总结
QImage类提供了一个独立于硬件的图像表示,允许直接访问像素数据,并且可以用作绘画设备。Qt提供了四个类来处理图像数据:QImage, QPixmap, QBitmap和QPicture。QImage是为I/O和直接的像素访问和操作而设计和优化的,而QPixmap是为在屏幕上显示图像而设计和优化的。QBitmap只是一个继承QPixmap的方便类,确保深度为1。最后,QPicture类是一个绘图设备,用于记录和回放QPainter命令。原创 2023-10-23 22:39:11 · 705 阅读 · 0 评论 -
Qt扫盲-Qt Concurrent概述
QtConcurrent 命名空间提供了一些高级api,可以在不使用互斥锁、读写锁、等待条件或信号量等低级线程原语的情况下编写多线程程序。使用QtConcurrent编写的程序会根据可用的处理器核数自动调整所使用的线程数。这意味着今天编写的应用程序在将来部署到多核系统上时将继续扩展。Concurrent Map 和 Map- reduce对容器中的每个项应用一个函数,就地修改这些项(不返回,原地修改)。类似于map(),不同之处在于它返回一个带有修改的新容器(返回修改)。原创 2023-10-23 00:30:43 · 977 阅读 · 0 评论 -
Qt扫盲-QPen 理论使用总结
QPen 是Qt绘图控件里面的一个重要的组件,和QColor 一样也是类似的一个属性类。这个类就是描述一个画笔具有的属性。一个画笔 Pen 有style(), width(), brush(), capStyle()和 joinStyle()。笔的style() [样式]定义了线条的类型。brush() [笔刷]用于填充 Pen 生成的笔画。使用QBrush类来指定填充样式。capStyle() [笔帽样式]决定了可以使用QPainter绘制的线尾帽,而joinStyle() [连接样式]原创 2023-10-22 13:47:24 · 1960 阅读 · 1 评论 -
Qt扫盲-QColor 理论使用总结
QColor 是Qt里面描绘颜色的一个属性类,这个类是在Qt GUI模块里面的,这样就可以知道这个类是与GUI相关。像显示他背景颜色等等,在绘图的时候之类的都会用这个类。在颜色理论体系中:一种颜色通常用RGB(红、绿、蓝)组成值来指定,但也可以用HSV(色调、饱和度和值)和CMYK(青色、品红、黄色和黑色)组成值来指定。此外,还可以使用颜色名称来指定颜色。颜色名称可以是SVG 1.0的任何颜色名称。在不同的应用场景有不同的颜色体系,在界面很多使用这个类的时候,基本上都是用的RGB色系。原创 2023-10-22 10:19:37 · 2857 阅读 · 0 评论 -
Qt扫盲-QBrush理论使用总结
QBrush类定义了由 QPainter 绘制的形状的填充模式。画笔有样式、颜色、渐变和纹理。brush style() 使用Qt::BrushStyle 枚举定义填充模式。默认的笔刷样式是 Qt::NoBrush(取决于你如何构造一个笔刷)。原创 2023-10-21 10:03:38 · 1172 阅读 · 1 评论 -
Qt扫盲-QTextCodec理论总结
QTextCodec 是Qt提供的一个管理字符串编码的功能,他可以在不同编码方式中来回转换,在文件读取的时候、格式编码转换的时候用处很大。Qt使用Unicode 编码来存储、绘制和操作字符串。在许多情况下,我们可能希望处理使用不同编码的数据。例如,大多数日本文档仍然存储在Shift-JIS或ISO 2022-JP中,而俄罗斯用户的文档通常存储在KOI8-R或Windows-1251中。Qt提供了一组QTextCodec类来帮助将非Unicode格式转换为Unicode格式。也提供了创建自己的编解码器类。原创 2023-10-20 11:31:40 · 1389 阅读 · 0 评论 -
Qt扫盲- QTextStream 理论总结
QTextStream类为读写文本提供了一个方便的接口。QTextStream可以操作QIODevice、QByteArray或QString。使用QTextStream的流操作符,我们可以方便地读写单词、行和数字。原创 2023-10-19 10:33:11 · 1197 阅读 · 0 评论 -
Qt扫盲-QDataStream 序列化和反序列化理论
序列化是将对象转换为字节流的过程,可以将对象持久化保存在磁盘或者通过网络传输。反序列化是将字节流转换为对象的过程,可以将保存或传输的对象重新恢复到内存中。数据持久化:将对象保存到磁盘中,实现数据的长期存储。例如,将用户的配置信息序列化为文件,以便在下次打开应用程序时可以重新加载。数据传输:通过网络传输对象,实现不同系统之间的数据交互。分布式计算。原创 2023-10-17 15:34:36 · 3103 阅读 · 1 评论 -
Qt扫盲-QJsonValue理论总结
QJsonValue类将一个值封装在JSON中。用的是键值对去索引数据的,键就是字符串,值就是我们要用的数据。在Qt里用的是 QJsonValue 表示数据JSON是一种存储结构化数据的格式。特殊的无定义数据。一个值可以表示成上述任何一种数据类型。此外,QJsonValue 有一个特殊的标志来表示未定义的值。这可以通过isUndefined()查询。原创 2023-10-16 13:43:24 · 319 阅读 · 0 评论 -
Qt扫盲-QJsonArray理论总结
QJsonArray类封装了一个JSON数组。JSON数组是一个值列表。可以通过从数组中插入和删除QJsonValue来操纵列表。原创 2023-10-16 13:28:44 · 493 阅读 · 0 评论 -
Qt扫盲-QJsonObject理论总结
QJsonObject类封装一个JSON对象。JSON对象是键值对的列表,其中键是唯一字符串值由QJsonValue表示。体现在Json字符串里就是用 { } 括号括起来的部分就是对象。"doc": {"book": "青年大学习","remark": "今天就学完"},"data": [},},}]像上面最外面的括号括起来的就是一个 QJsonObject 对象, doc 字段里的 值也是一个对象, 在data里就是一个对象列表。原创 2023-10-16 13:16:24 · 173 阅读 · 0 评论 -
Qt扫盲-QJsonDocument理论总结
QJsonDocument类提供了一种读写JSON文档的方法。QJsonDocument是一个包装完整JSON文档的类,可以从基于UTF-8编码的文本表示和Qt自己的二进制格式读写该文档。所谓的JSON文档指的是就是一个我们能看到的用JSON语法构成的文档。比如下面的文本几种形式纯对象JSON文档基础数组JSON文档对象数组JSON文档},"我是普通文本~",},"我是普通文本~",},"我是普通文本~",},"我是普通文本~"混合JSON文档"data": [},},原创 2023-10-16 12:54:35 · 942 阅读 · 0 评论 -
Qt扩展-Log4Qt 简介及配置
Log4Qt是基于Qt写的一个日志库。也是使用Qt框架的Apache Software Foundation Log4j包的c++移植版。它的目的是供开源和商业Qt项目使用。好像有Qt4 和Qt5的版本。我用的是Qt5的版本。版本要求最低Qt版本要求Qt5.12(为了支持Qt版本降至5.3,请使用分支1.4或最新的1.4)。如果要支持Qt 5.7以下的版本,请使用分支1.5或最新的1.5。x版本)需要c++ 11特性(最低编译器版本MSVC14, GCC 4.8或CLANG 3.3)基本功能。原创 2023-10-10 17:48:16 · 1380 阅读 · 0 评论 -
Qt扫盲-QTreeView 理论总结
QTreeView实现了 model 中item的树形表示。这个类用于提供标准的层次列表,这些列表以前是由QListView类提供的,但是使用Qt的model/view体系结构提供的更灵活的方法。QTreeView类是model/view类之一,是Qt model/view框架的一部分。QTreeView实现了由QAbstractItemView类定义的接口,以允许它显示由QAbstractItemModel类派生的模型提供的数据。构造显示模型数据的树状视图很简单。原创 2023-10-07 17:23:28 · 1001 阅读 · 0 评论 -
Qt扫盲-QListView理论总结
QListView显示存储在model 中的item,要么是一个简单的非层次列表,要么是一个图标集合。这个类用于提供列表和图标视图,之前像这些 列表 和 图标视图 之前是由QListBox和 QIconView 类提供的,但使用Qt的model/view架构提供的更灵活的方法。也是Qt 推荐使用的方法。就像Windows的系统资源管理器里面的文件夹的一列,只有一列,就像下面的这种。QListView类是Model/View类之一,是Qt的Model/View框架的一部分。原创 2023-10-07 09:53:37 · 474 阅读 · 0 评论 -
Qt扩展-Advanced-Docking 简介及配置
Advanced-Docking 是类似QDockWidget 功能的多窗口停靠功能的库。很像visual stdio 的 停靠功能,这个库对于停靠使用的比较完善。很多的软件都使用了这个框架。Qt Creator从4.12版本开始,Qt Creator在其Qt Designer 中使用了该框架。CETONI Elements软件是一款全面的、基于插件的模块化实验室自动化软件,用于使用联合图形用户界面控制CETONI设备。该软件具有强大的脚本系统,可自动执行流程。原创 2023-10-06 09:34:42 · 2524 阅读 · 2 评论 -
Qt扩展-QCustomPlot 用户交互
QCustomPlot提供了多个内置的用户交互。它们大致可以分为通过用鼠标拖动和滚动鼠标滚轮进行范围操作、通过点击选择绘图实体、用户点击绘图实体时发出的信号。原创 2023-10-01 00:47:35 · 1448 阅读 · 0 评论 -
Qt扩展-QCustomPlot绘图基础概述
本教程使用 customPlot 作为指向 QCustomPlot 实例的指针。如果我们在QtCreator中提升了一个控件,那么我们可能会通过ui->customPlot(或我们给控件的任何名称)来访问相应的控件。我们可以通过customPlot->addGraph()在绘图中创建一个新Graph。然后你给Graph分配一些数据点,例如通过customPlot->graph(0)->setData(…),例如以两个QVector的形式表示x和y(键和值)。原创 2023-10-01 00:17:46 · 3447 阅读 · 0 评论 -
Qt扫盲-QSqlField 理论总结
QSqlField 表示数据库表 或 视图中单个列的特征,说白了就是数据库记录里的数据字段。如数据类型和列名。字段还包含数据库列的值,可以查看或更改。就像下面的数据表例子一样,QSqlField 可以代表id 列下面的某一条记录的一个值。这个类与 QSqlRecord 的关系如下图,一个QSqlRecord 本质上是是维护了一组QSqlField 对象,我们查询从数据库查询出来的数据集里面的一条记录,就可以在Qt 里面用 QSqlRecord 表示。QSqlRecord 类。原创 2023-09-28 09:49:56 · 634 阅读 · 0 评论 -
Qt扫盲-QSqlRelationalTableModel 理论总结
QSqlRelationalTableModel的行为类似于QSqlTableModel,但允许将列设置为进入其他数据库表的外键。在上面左边的截图显示了 QTableView 中的普通 QSqlTableModel。外键(city和country)不能解析为人类可读的值。右边的截图显示了一个QSqlRelationalTableModel,外键被解析为人类可读的文本字符串。setRelation() 函数调用建立了两个表之间的关系。原创 2023-09-27 22:39:14 · 803 阅读 · 0 评论 -
Qt扫盲-QSqlTableModel理论总结
QSqlTableModel是用于从单个表读写数据库记录的高级接口。它构建在较低级的QSqlQuery之上,可用于向QTableView等视图类提供数据。这个主要是对单表的操作,不仅可以读取数据,而且可以修改数据。在项目里面,我们比如要操作某一个最基础的配置表的数据,因为其他表是依赖这个表里面数据的索引,我们就需要修改这个配置表里的具体的字段数据,就需要用这个 QSqlTableModel 对单表进行修改。当然我们也可以把 数据库的视图当成一个表,用作显示也是可以的。原创 2023-09-27 22:14:18 · 504 阅读 · 0 评论 -
Qt扫盲-QSqlQueryModel理论总结
QSqlQueryModel是用于执行SQL语句和遍历结果集的高级接口。它构建在较低级的 QSqlQuery之上,可用于向QTableView 等视图类提供数据,也是使用了Qt 的 mode/view 框架。这种方式是非常快的,对于数据的显示是非常方便的一个类,而且这个类主要是用于对 sql 的查询,也就是只读的一个操作只读取数据,而不会修改数据的一个 model 类。原创 2023-09-26 22:33:29 · 414 阅读 · 0 评论 -
Qt扩展-QCustomPlot 简介及配置
QCustomPlot是一个用于绘图和数据可视化的Qt 控件。它没有进一步的依赖关系,并且有良好的文档记录。这个绘图库专注于制作好看的、发布质量的2D绘图、图形和图表,以及为实时可视化应用程序提供高性能。看一看设置和基本的绘图教程开始。QCustomPlot可以导出各种格式,如矢量化的PDF文件和栅格化的图像,如PNG、JPG和BMP。QCustomPlot是在应用程序中显示实时数据以及为其他媒体生成高质量图形的解决方案。原创 2023-09-26 21:31:55 · 1063 阅读 · 0 评论 -
Qt扩展-KDDockWidgets 的使用
KDDockWidgets 的使用相对比较简单,建议直接参考 其提供的例子。MainWindow充当 DockWindow的活动区域,也相当于 DockWindow的父容器。DockWindow 与 DockWindow 的实例的排布关系可以是并列显示的,也可以是结合拼在一起的 合并显示。DockWidget 窗口作为我们业务逻辑的 容器窗口,这个只是作为Dock功能的一个容器,本质上不会影响业务。原创 2023-09-25 15:29:42 · 659 阅读 · 4 评论