自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(279)
  • 资源 (3)
  • 收藏
  • 关注

原创 【Qt之模型视图】5. Qt库提供的视图便捷类

Qt提供了一些便捷的视图类,如QListWidget提供项目列表,QTreeWidget显示多级树结构,QTableWidget提供单元格项的表格。每个类都继承了QAbstractItemView类的行为,QAbstractItemView类实现了项目选择和标题管理的通用行为。这三个类使用起来方便,但适合于少量数据的存储与显示(存储个几万、十几万的数据还可以),因为它们三个没有将视图和模型进行分离,因此没有视图类灵活。而且这三个类也不能和模型一起使用。

2024-01-21 22:33:19 2151 1

原创 【Qt之模型视图】4. 委托及自定义委托

接下来,使用自定义委托QSpinBox来提供编辑工具,主要用于显示整数的模型。先设置一个自定义的基于整数的表模型,因为自定义委托控制数据输入。之后创建一个表视图来显示模型的内容,使用自定义委托进行编辑。可以继承来实现自定义委托。创建自定义委托需要实现// 创建自定义Widget// 设置数据到控件// 设置数据到模型// 更新控件尺寸(editor);(editor);

2024-01-18 23:11:43 1239

原创 【Qt之模型视图】3. 视图类及使用

在MVC架构中,视图通过与模型交互,将数据项进行显示。在此还需要再一次声明,数据的呈现方式可能与底层存储数据项的数据结构完全不同。数据和显示能够分离,是因为使用了提供了统一接口,和提供了一个标准视图接口,以及使用模型索引提供了一个通用方法表示数据。视图从模型获取数据,在界面显示,可以自己渲染数据项,也可以使用委托进行渲染。在使用视图,需要创建一个视图,然后设置模型,如果不设置模型,也可以使用视图,但没内容。除了呈现数据,视图还处理项之间的导航和部分项目选择。

2024-01-18 23:11:15 762

原创 【Qt之模型视图】2. 模型类及QModelIndex模型索引、自定义模型

当需要为一个数据结构创建一个新的模型时,当然要考虑使用哪种模型为数据提供接口。如果数据结构为列表或表格,可以子类化和。因为这俩个抽象类提供了不错的默认实现。如果数据结构表现为树结构,就需要子类化以下是子类化的示例,包括编辑、插入、删除功能。首先实现显示只读功能.hQ_OBJECTpublic:private:.cppm_sl = sl;if(!

2024-01-17 21:48:51 1245

原创 【Qt之模型视图】1. 模型和视图架构

SmalltalkQt模型/视图。

2024-01-17 21:48:40 1397

原创 Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案

当进行数据库写入或更新时,有时会遇到存在字符串中包含单个双引号或者单引号。

2024-01-13 23:02:08 1233

原创 Qt QTableView和QStandardItemModel包含搜索出现的文本及隐藏顶层节点

使用Qt进行开发时,树结构一般是使用QTreeWidget或使用QTreeView+QStandardItemModel结合。

2024-01-11 22:32:04 621

原创 Qt 智能指针QScopedPoint用法

QScopedPointer类用于存储一个指向动态分配的对象的指针,并在对象销毁时自动删除它。手动管理堆分配的对象是困难且容易出错的。常见的后果是代码内存泄漏,难以维护。QScopedPointer是一个小工具类,通过将基于堆栈的内存所有权分配给堆分配,一般称资源获取即初始化(RAII),从而大大简化了这一点。QScopedPointer保证当当前作用域消失时,所指向的对象将被删除。当使用QScopedPointer时,可以确保在函数退出时,所分配的对象会被自动删除,从而避免了内存泄漏。

2024-01-10 22:18:52 1294

原创 【Qt之Quick模块】8. Quick基础、布局管理、布局管理器

Qt Quick编程,提供了多种布局方式。如,静态布局,可以使用组件的x、y属性进行设置,或者进行绑定。还可以使用锚anchors进行布局。此外,还可以使用定位器以及定位管理器为多组件进行布局。但使用布局管理器和锚会占用内存和实例化时间,若使用x、y、width、height等属性能完成需求,两者相较取其轻,则尽量就不要用布局管理器和锚进行布局了。

2024-01-10 21:58:49 1133

原创 Qt QProcess进程间调用及交互通信,完整示例

Qt QProcess进程间调用及交互通信,完整示例

2024-01-09 21:40:51 2488

原创 Qt 快速读取大文件最后一行内容

Qt 快速读取大文件最后一行内容

2024-01-09 21:16:40 1013

原创 Qt读取文件对比:每次获取自定义的长度和使用系统的API,耗时对比

以下是三种方式,按行读取,测试所用耗时。QString strInfo = QString("line : 第 %1 行, info : %2").arg(QString::number(nLineNum), ba);if(!return;// 如果内容中有中文需要添加以下代码,不然含有中文时乱码while(!while(true) // 每次解析读到的m_nMaxSize数据if(-1 == nPosTmp) // 当没有找到以"\r\n"为分割的内容时,返回 -1。

2024-01-08 22:24:39 749

原创 【Qt之Quick模块】6. QML语法详解_4 集成QML和JavaScript

QML应用程序的程序逻辑可以用JavaScript定义。JavaScript代码可以在QML文档中内联定义,也可以分离到JavaScript文件中(在QML中称为JavaScript资源)。QML中支持两种不同类型的JavaScript资源:代码隐藏实现文件和共享(库)文件。这两种JavaScript资源都可以被其他JavaScript资源导入,或者包含在QML模块中。

2024-01-04 04:00:00 1025

原创 QProgressDialog用法及结合QThread用法,四种线程使用

类提供耗时操作的进度条。进度对话框用于向用户指示操作将花费多长时间,并演示应用程序没有冻结。此外,还可以给用户一个中止操作的机会。进度对话框的一个常见问题是很难知道何时使用它们;操作在不同的硬件上花费不同的时间。为这个问题提供了一个解决方案:它估计操作将花费的时间(基于步骤的时间),并且仅在估计超过(默认为4秒)时才显示它自己。使用和或构造函数设置操作中的“steps”数,并在操作进行时调用setValue()。steps数可以任意选择。

2024-01-03 21:35:16 2012

原创 【Qt之Quick模块】7. Quick基础、常用组件Item、Rectangle、Text、TextInput、TextEdit等

Qt Quick模块是编写QML应用程序的标准库。Qt QML模块提供QML引擎和语言基础结构,Qt Quick模块提供用QML创建用户界面所需的所有基本类型。它提供了一个可视化画布,包括用于创建和动画化可视化组件、接收用户输入、创建数据模型和视图以及延迟对象实例化的类型。Qt Quick模块提供了一个QML API(为用QML语言创建用户界面提供QML类型)和一个c++ API(用c++代码扩展QML应用程序)。注意:一组基于Qt quick的UI控件也可用于创建用户界面。

2024-01-02 22:07:43 1340

原创 【Qt之Quick模块】6. QML语法详解_3 QML对象特性

通过注册类的Q_PROPERTY宏,可以在c++中为类型定义属性,然后在QML类型系统中注册。通过这种方式,对象声明可以更容易地向外部对象公开特定值或维护某些内部状态。属性名称必须以小写字母开头,并且只能包含字母、数字和下划线。JavaScript保留字不是有效的属性名。默认关键字是可选的,用于修改所声明属性的语义。隐式声明自定义属性会为该属性创建一个值更改信号,以及一个名为的关联信号处理程序,其中是属性的名称,第一个字母大写。

2024-01-01 16:01:35 958

原创 二进制、位运算和掩码运算,小白鼠测试示例

二进制是一种基于两个数字0和1的数制系统。它可以表示两种状态,即开和关。所有输入电脑的任何信息最终都要转化为二进制。目前通用的是ASCII码。最基本的单位为bit。在计算机科学中,二进制是最常用的数制系统,因为计算机内部的所有数据都是以二进制形式存储和处理的。在二进制中,每个数字位被称为一个比特(bit),它可以是0或1。比特的位置从右到左依次递增,每个位置的值是2的幂。比如,最右边的比特的权重是21,即2;第三个比特的权重是2^2,即4,依此类推。

2023-12-30 18:32:00 1058

原创 Qt 记录之实时获取窗体的尺寸Geometry

Qt 记录之实时获取窗体的尺寸Geometry

2023-12-29 23:23:37 774

原创 Qt 对话框无边框,背景透明,不在任务栏显示,当点击对话框之外区域对话框关闭

Qt 对话框无边框,背景透明,不在任务栏显示,当点击对话框之外区域对话框关闭

2023-12-29 23:23:08 1696

原创 归并排序之C++实现

然后,对每个子数组进行归并排序,即不断地将两个有序的子数组合并成一个有序的数组。合并时,从两个数组的开头依次比较元素的大小,将较小的元素放入结果数组中,直到其中一个数组的元素全部放入结果数组中。然后,将剩余的元素直接放入结果数组中,得到一个有序的合并数组。这个临时数组的长度与原数组长度相同,因为最差情况下,两个子数组的元素都要合并到临时数组中。它的分治思想保证了每次都将待排序数组二分,所以排序的时间复杂度是稳定的。这样,递归的深度为logn,每层递归需要O(n)的额外空间来存放临时数组。

2023-12-26 22:45:02 545

原创 快速排序之C++实现

在递归的过程中,每层递归都需要保存一些临时变量,包括基准元素的索引、左右指针的位置等,这些变量占用的空间与递归的层数成正比。如果选择的基准元素恰好是数组的最大或最小值,那么每次划分都只能将一个元素移到它的最终位置上,这样快速排序的时间复杂度将会退化为O(n^2)。每次划分的时间复杂度为O(n),其中n为待排序数组的长度。快速排序是一种常用的排序算法,它的思想是选取一个基准元素,将数组分成左右两部分,使得左边的元素都小于等于基准元素,右边的元素都大于等于基准元素,然后递归地对左右两部分进行快速排序。

2023-12-25 23:12:34 512

原创 选择排序之C++实现

选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每一轮从待排序的数据中选择最小(或最大)的一个元素,然后与待排序数据的第一个元素交换位置。对剩余未排序的数据重复这个过程,直到所有数据排序完成。选择排序的时间复杂度为O(n^2),其中n为待排序的数组长度。选择排序的空间复杂度为O(1),只需要常数级别的辅助空间。

2023-12-25 22:45:26 1035

原创 插入排序之C++实现

插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的数据序列分为已排序和未排序两部分,每次从未排序序列中取出一个元素,然后将它插入到已排序序列的适当位置,直到所有元素都插入完毕,即完成排序。根据循环次数,插入排序的平均时间复杂度为O(n。插入排序的空间复杂度为O(1)。

2023-12-24 23:00:20 793

原创 【Qt之Quick模块】6. QML语法详解_2类型系统

【Qt之Quick模块】6. QML语法详解_2类型系统

2023-12-24 22:03:50 582

原创 【Qt之Quick模块】6. QML语法详解_1 基础语法与三种导入语句

【Qt之Quick模块】6. QML语法详解_1 基础语法与三种导入语句

2023-12-24 21:55:45 1366

原创 冒泡排序之C++实现

冒泡排序之C++实现

2023-12-23 23:44:22 1081

原创 【Win10安装Qt6.3】安装教程_保姆级

【Win10安装Qt6.3】安装教程_保姆级

2023-12-23 23:09:17 1121 1

原创 什么是递归

什么是递归

2023-12-22 23:21:38 376

原创 【Qt之Quick模块】5. QML基本类型及示例用法

【Qt之Quick模块】5. QML基本类型及示例用法

2023-12-22 23:11:37 829

原创 【Qt之Quick模块】4. QML语法格式及命名规范

【Qt之Quick模块】4. QML语法格式及命名规范

2023-12-21 22:48:43 1307

原创 【Qt之Quick模块】3. QML类型

【Qt之Quick模块】3. QML类型

2023-12-21 20:00:00 1291

原创 【Qt开发流程】之文件目录、文件、输入和输出

【Qt开发流程】之文件目录、文件、输入和输出

2023-12-19 23:15:38 1020

原创 【c++】 error: invalid conversion from ‘int‘ to ‘enumType‘ [-fpermissive]解决方案

【c++】 error: invalid conversion from ‘int‘ to ‘enumType‘ [-fpermissive]解决方案

2023-12-19 20:37:39 904

原创 【Qt之Quick模块】2.创建Qt Quick UI工程

【Qt之Quick模块】2.创建Qt Quick UI工程

2023-12-18 23:17:45 701

原创 【Qt之Quick模块】1. 概述及Quick应用程序创建流程

【Qt之Quick模块】1. 概述及Quick应用程序创建流程

2023-12-18 22:49:13 1200

原创 【Qt】使用QDataStream向QByteArray内读写数据时,输出QByteArray数据为空解决方案

【Qt】使用QDataStream向QByteArray内读写数据时,输出QByteArray数据为空解决方案

2023-12-17 22:25:45 1403

原创 【Qt开发流程】之TCP

【Qt开发流程】之TCP

2023-12-17 16:14:17 1116

原创 IP小知识

IP小知识

2023-12-16 23:26:38 997

原创 【Qt开发流程】之UDP

【Qt开发流程】之UDP

2023-12-16 22:52:50 1559

原创 【Qt开发流程】之网络编程:`HTTP`和`FTP`的高级网络操作

【Qt开发流程】之网络编程:`HTTP`和`FTP`的高级网络操作

2023-12-15 23:47:07 1103

Qt-process之invoke&client、进程通信.rar

Qt实现进程通信 通过调用端调用进程,实现不同进程间的交互

2024-01-09

C++&&Qt + 进度框&&线程使用 + 处理耗时操作

完整示例代码,可直接运行,内有注释 使用C++和Qt实现线程处理耗时操作,主线程加载处理进度显示 使用4种线程处理方式: 1. 继承QThread 2. 继承QRunnable 3. 继承QObject,移动线程中处理 4. 使用QtConcurrent

2024-01-02

【Qt之QSplashScreen】开场动画使用:进度条加载及设置鼠标指针不转圈

【Qt之QSplashScreen】开场动画使用:进度条加载及设置鼠标指针不转圈

2023-11-16

“Qt”+“C++”+QTableWidget控件自定义表头,合并,重写样式

内容概要:QTableWidget自定义表头,占用多行数据,利用合并表格功能实现多行表头,使开发者能够根据需要灵活地定制表格外观和行为,内部已实现了自定义样式表头,可根据需求重新实现 使用人群:Qt/C++开发人员 使用场景:Qt项目开发 实现思想:使用两个表格进行实现,一个表格充当表头,一个表格隐藏表头,充当表格项 其他说明:可根据项目情况进行自定义实现

2023-09-07

Qt多线程编程实例_QThread详解

Qt多线程编程实例,QThread用法详解,基于主线程发送创建随机数个数,子线程进行创建和其他子线程进行冒泡排序、快速排序等,再将排序结果回传给主线程进行显示结果和进度显示。资源含源码,版本5.9.5以上可直接运行。

2021-12-18

Qt多线程编程实例_QThread用法详解

Qt多线程编程实例,QThread用法详解,基于主线程发送创建随机数个数,子线程进行创建和其他子线程进行冒泡排序、快速排序等,再将排序结果回传给主线程进行显示结果和进度显示。

2021-12-18

Qt之网络编程Tcp通信实例

Qt网络编程之QTcp通信实例,直接可把项目添加到Qt5以上版本运行。 包括客户端和服务器代码及exe。经过测试,在局域网和本机电脑上都可以正常通信。 另外,实例的教程和代码也在本人的所发的Qt文章内容里面。

2021-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除