自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 QML SplitView讲解

QML 的SplitView是一个用于创建可分割视图的组件,它允许用户通过拖动分隔条来调整不同视图部分的大小。SplitView非常适合用于创建如侧边栏、双栏布局等场景,其中一部分内容需要占据固定或可变的空间,而另一部分则可以根据用户的需要进行调整。

2024-04-17 23:55:46 381

原创 QML事件处理之拖放事件(DragEvent)

在QML中,拖放事件(DragEvent)是用于处理拖放操作的事件类型。它允许用户通过鼠标或触摸屏等输入设备选择并拖动一个对象,然后将其放置到另一个位置或另一个对象上。,并设置热点(hot spot)为鼠标当前的位置。这样,当用户拖动鼠标时,子类,并覆盖相应的事件处理函数。是一个可以被拖动的红色矩形。当用户按下并拖动这个矩形时,事件会被触发,你可以在这里处理放置逻辑。要处理拖放事件,你需要使用QML的。

2024-04-17 23:21:57 164

原创 QML事件处理之拖放事件(DragEvent)获取文件路径

在QML中,处理拖放事件(DragEvent)以获取文件路径通常涉及监听窗口或特定组件上的拖放事件,并解析事件中包含的数据以提取文件路径。QML本身并不直接提供解析拖放文件路径的内置机制,但你可以通过连接C++后端或使用QML的。MIME类型提供的,这是许多操作系统和应用程序在拖放文件时使用的标准格式。然而,不同的操作系统和应用程序可能会使用不同的格式,因此你可能需要编写更复杂的逻辑来处理不同的MIME类型和数据格式。来获取拖放的URL列表,这些URL通常指向被拖放的文件。当文件被拖放到窗口上时,

2024-04-17 23:00:29 391

原创 Qt 处理excel

的方法依赖于Windows平台和安装的Microsoft Office版本,因此它可能不是跨平台解决方案的最佳选择。对于跨平台需求,你可能需要考虑使用如LibXL或OpenXLSX这样的第三方库。替换为你想要保存Excel文件的实际路径。在实际应用中,你应该添加适当的错误处理逻辑。请注意,这个方法要求你的系统上安装有Microsoft Excel。处理Excel文件在Qt中通常涉及到使用第三方库,因为Qt本身并不直接支持Excel文件的读写。首先,确保你的Qt项目配置中包含了ActiveQt模块。

2024-04-05 15:26:58 270

原创 C++ libcurl库讲解

libcurl是一个广泛使用的开源客户端URL传输库,支持多种协议,包括 HTTP、HTTPS、FTP、IMAP、POP3、SMTP 等。它允许开发者通过编程的方式发送和接收数据,与远程服务器进行交互。在 Windows 上使用libcurl,你需要首先下载和编译该库,或者从预编译的二进制包中获取它。

2024-04-04 22:04:00 467

原创 QML使用C++层枚举变量

在QML中,枚举(Enumeration)变量通常用于定义一组命名常量。要使用枚举变量,首先在一个QML文件或Qt对象中定义枚举类型,然后在QML中使用这些枚举值。2. **在QML中使用枚举变量**:在定义了枚举后,可以在其他QML文件中通过导入该QML文件来使用枚举值。

2024-04-04 14:49:37 180

原创 Qt 导出类及导出类被调用

当编译库自身的时候,`MYLIBRARY_LIBRARY`应该被定义(通常在项目文件中),这样`MYLIBRARY_EXPORT`就会在类前面扩展为`Q_DECL_EXPORT`,它在Windows上展开为`__declspec(dllexport)`,这是告诉编译器将这个类导出到库中。并确保产生的`.dll`(Windows)或`.so`(Linux / macOS)文件对应用程序或其他库可用。这样,`MyClass`就会根据`MYLIBRARYSHARED_EXPORT`宏的定义被正确地导出或导入。

2024-04-04 13:36:59 362

原创 Qt QWebSocket讲解

QWebSocket是 Qt 框架中用于处理 WebSocket 通信的类。WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。这使得客户端和服务器之间可以进行实时交互,而无需频繁地建立和关闭连接。

2024-03-31 22:58:05 712

原创 Qt 线程QThread

请注意,线程 ID 是平台相关的,不同的操作系统或不同的线程库可能会生成不同的线程 ID。此外,线程 ID 并不总是连续的或可预测的,因此不应该依赖于特定的线程 ID 值。这种做法有助于保持线程逻辑的清晰分离,并允许你更灵活地管理线程和对象之间的交互。在更复杂的场景中,你可能会考虑使用信号和槽机制来进行线程间的通信。这确保了线程是在单独的线程控制流中运行的。,在这个槽函数中我们打印出当前线程的 ID。二.方式2:Qt中的线程模型将对象移动到线程中方式。Qt中的线程模型鼓励将对象移动到线程中,而不是继承。

2024-03-31 22:17:52 347

原创 Qt中QMutex和QMutexLocker

当创建一个QMutexLocker实例时,它会自动锁定关联的QMutex。当QMutexLocker对象离开作用域时(比如函数返回时),其析构函数会自动释放QMutex。这主要用于保证在函数中发生异常时能够正确地解锁QMutex,避免死锁。QMutexLocker是一个辅助类,它简化了对QMutex的锁定和解锁过程。QMutex是Qt中的一个互斥锁,用于保护共享数据不被多个线程同时修改。一.QMutex和QMutexLocker知识介绍。

2024-03-31 21:48:50 616

原创 C++中浅拷贝和深拷贝对象复制概念

在上面的例子中,浅拷贝构造函数只是简单地将指针 `data` 复制给新对象,导致两个对象共享相同的指针,容易出现潜在的问题。深拷贝是指在对象复制时,会复制对象指向的资源,而不是简单地复制指针。这样就可以避免多个对象共享同一资源带来的问题。根据运行结果可以看出,浅拷贝会导致两个对象共享同一资源,而深拷贝会将资源复制给新对象,避免了共享资源带来的问题。浅拷贝是指在对象复制时,只是复制对象的值,而不会复制对象指向的资源。,将原对象的数据复制给新对象,从而。,以避免潜在的问题。

2024-03-31 00:39:18 197

原创 C++纯虚函数的使用

在 `main` 函数中,创建了一个基类指针 `shapePtr` 指向派生类 `Circle` 的对象。- 派生类 `Circle` 中必须实现基类中的纯虚函数 `draw`,否则派生类也会成为抽象类。- 调用纯虚函数 `draw` 时,实际调用的是派生类 `Circle` 中的实际实现。纯虚函数是一种在C++中定义抽象基类的方法,它是一个在基类中声明但没有实现的虚函数。- 基类 `Shape` 中的虚函数 `draw` 被声明为纯虚函数。

2024-03-31 00:19:39 257

原创 C++中使用虚函数实现多态

在基类 `Shape` 中,`draw` 函数使用 `virtual` 关键字声明为虚函数,表示可以在派生类中被重写。- 在 `main` 函数中,创建了一个基类指针 `shapePtr` 指向派生类 `Circle` 的对象。- 派生类 `Circle` 中重写了基类中的虚函数 `draw`,实现了绘制一个圆的功能。- 调用虚函数 `draw` 时,实际调用的是派生类 `Circle` 中的重写函数。虚函数在基类中可以有默认实现,也可以是纯虚函数(没有实际实现,需要在派生类中实现)。

2024-03-31 00:07:56 318

原创 Qt实现对界面列表数据的局部刷新

在Qt中,可以使用QAbstractListModel类来创建自定义的ListModel,实现对界面列表数据的局部刷新。在上面的QML代码中,创建了一个ListView,并将CustomListModel作为model。通过model中的updateData函数实现列表内容的部分刷新。在这个示例中,`CustomListModel` 是一个自定义的ListModel,其中实现了更新数据的槽函数 `updateData()`。

2024-03-30 23:50:18 558

原创 C++赋值运算符函数与拷贝构造函数

在这个例子中,`MyClass` 具有一个整型成员数据,当创建类的新实例时,拷贝构造函数被调用(比如`MyClass b = a;`),而当一个已经存在的实例被赋予另一个对象的值时,拷贝赋值运算符被调用(比如`c = a;注意,在`MyClass`类中,我们添加了输出语句来指明哪个函数被调用。当我们要将一个对象的值赋予另一个已经存在的对象时,我们就会使用赋值构造函数。其中,`old_obj`是一个源对象的引用,我们将从其中复制数据。在这里,`old_obj`是我们要从中获取值的源对象。

2024-03-30 13:35:36 438

原创 Qt框架的三大核心技术

模型负责管理数据,视图负责展示数据,通过模型/视图的机制,可以实现数据与界面的分离,使数据的修改不影响界面的显示,提高了应用程序的可维护性和扩展性。而接收该信号的槽会被触发执行相应的操作。信号和槽的机制使得Qt应用程序的设计更加灵活和易于维护。Qt提供了多线程编程的支持,使得开发人员可以更方便地编写并发程序。Qt提供了丰富的类库和 API,可以轻松管理线程的创建、同步和通信,简化了多线程编程的复杂性。信号和槽是Qt框架中用于处理事件和通信的重要机制。应用程序中同时执行多个任务,提高程序的性能和响应性。

2024-03-30 13:20:52 256

原创 C++类继承

在C++中,类继承是一种面向对象编程的重要特性,允许一个新类(派生类)从一个现有类(基类)中继承属性和行为。通过理解类继承的基本语法和实例代码,你可以更好地掌握C++中的面向对象编程特性,从而设计更加灵活和可维护的程序结构。,即一个类可以派生自另一个派生类。使得类的继承更加灵活,可以实现。C++类继承讲解及代码示例。

2024-03-30 12:56:15 147

原创 Qt QOSG学习网站推荐

Qt官方社区论坛(https://forum.qt.io/)和Qt开发社区(如Qt中文社区、Qt英文社区等)是一个很好的交流平台,你可以在这里提问、分享经验和学习他人的技术成果。[Qt官方网站](https://www.qt.io/)提供了Qt的文档、教程、示例代码以及社区支持,是学习Qt GUI编程的首要资源。不少网站提供了Qt的学习资源和教程,比如[Qt中文网](https://www.qter.org/)提供了丰富的Qt学习资料和论坛交流。

2024-03-30 12:45:25 206

原创 计算机图形学和OpenGL

以上书籍涵盖了不同层次和方面的OpenGL和计算机图形学知识,可以根据自己的需求和学习水平选择适合的书籍进行学习。这本书专注于OpenGL着色器编程,讲解OpenGL中的着色器语言GLSL,适合有一定基础的学习者深入学习OpenGL编程。这本书介绍了计算机图形学的基本原理和基于C语言的OpenGL编程技术,深入浅出,适合希望全面了解计算机图形学的学习者。这本书是学习OpenGL编程的经典教材,详细介绍了OpenGL的基础知识和高级技术,适合初学者和有一定基础的学习者。

2024-03-30 12:38:22 124

原创 学习嵌入式系统开发学习课程有哪些

了解电子电路、数字电子学等硬件基础知识对于理解嵌入式系统原理和开发非常有帮助,可以通过开放式在线课程如MIT OpenCourseWare等学习相关内容。学习不同种类的微控制器(如Arduino、Raspberry Pi)和单片机的开发方法和应用,深入了解硬件和软件之间的交互。了解嵌入式系统的原理和架构对于深入学习非常重要,可以通过大学的计算机科学课程或者专门的嵌入式系统学习课程获取相关知识。除了上述课程,还有许多在线资源和书籍可以帮助你学习嵌入式系统开发,需要持续积累知识和经验,不断提升自己的技能。

2024-03-30 12:31:53 361

原创 C++就业方向

1. 游戏开发:C++在游戏开发领域有着广泛应用,许多游戏引擎和大型游戏都是基于C++开发的,因此游戏开发工程师是C++就业的一个主要方向之一。无论选择哪个就业方向,掌握扎实的C++编程基础和相关领域的知识是非常重要的。同时,不断学习和保持技术更新是成为一个成功的C++工程师的关键。3. 金融科技:金融机构对高性能和高频交易系统有需求,C++表现出色的性能使其成为金融科技领域的一种首选语言。C++是一种非常强大和广泛应用的编程语言,特别在一些特定领域具有出色的应用前景。

2024-03-30 12:24:05 190

原创 QML ShapePath绘制虚线

这两个属性决定了曲线路径的起点。通过设置这些属性,你可以控制直线段的起始位置。在 QML(Qt Modeling Language)中,类型用于描述一个二维路径,可以用来绘制形状、曲线和直线。元素的一个子类型,用于创建两点之间的直线段。是所有路径曲线中最简单的路径曲线。属性来指定直线的终点位置。

2024-03-24 21:14:47 195

原创 QML Shape PathLine PathArc

提供了一种简单的方法来指定具有半径的给定位置的圆弧。通过调整这些属性,你可以创建不同大小、不同角度和不同方向的圆弧。是QML中用于创建和定义路径的重要工具,它们提供了灵活性和可扩展性,使得开发者能够创建出各种复杂的图形和界面效果。时,通常需要指定两个点,即起点和终点。这两个点确定了直线的位置和长度。,你可以创建简单的直线,也可以将多条直线组合起来,形成更复杂的路径。等)结合使用,以创建复杂的路径和形状。元素,每个元素指定圆的一半,来创建一个完整的圆。路径的一部分,用于定义路径中的特定部分。

2024-03-24 20:53:51 173

原创 QML Shape绘制环形进度条

在 Qt 的 QML (Qt Modeling Language) 中,

2024-03-24 19:40:46 608 2

原创 QML Shape绘制tab页

二.QML Shape绘制tab页使用示例。

2024-03-24 10:02:06 207

原创 QML 布局管理器之GridLayout 项目demo

/ GasControl.qml 气体控制界面布局。//DottedLline.qml 虚线绘制。//main.qml 主界面调用。二.界面布局代码实现。

2024-03-23 14:50:37 41

原创 QML 绘制BarSeries(柱状图)

二.BarSeries(柱状图)代码示例。一.BarSeries(柱状图)介绍。在QML中绘制柱状图,通常需要使用。类来创建数据系列,并使用。

2024-03-21 23:07:34 269

原创 QML 绘制PieSeries(饼状图)

总的来说,QML提供了丰富的功能和灵活性来创建和定制饼状图。通过结合QtCharts模块的强大功能,可以轻松地在QML应用中实现饼状图的绘制。该模块包含了一系列用于绘制图表的类,其中。在QML中绘制饼状图主要依赖于Qt提供的。二.PieSeries(饼状图)代码示例。一.PieSeries(饼状图)介绍。类专门用于创建饼状图。

2024-03-21 00:12:57 365

原创 QML中绘制LineSeries(折线图)

QtCharts是Qt提供的一个专门用于绘制图表的模块,它支持多种类型的图表绘制,包括折线图、饼状图、曲线图等。为了在QML中使用QtCharts,首先需要在项目的.pro文件中添加对QtCharts模块的依赖,即添加。通过修改坐标轴样式,例如字体、颜色、显示范围等,可以自定义折线图的外观。此外,还可以利用定时器动态更新图表的数据,以实现动态折线图的效果。接着,在QML文件中包含必要的头文件并声明命名空间。二.具体的使用示例,可以参考以下代码框架。在QML中绘制折线图,通常使用。接下来,我们可以通过创建。

2024-03-20 23:45:34 422

原创 win10资源管理器不停的崩溃 怎么修复?

二.输入 【sfc /scannow】并按【Enter】。通过执行此操作,sfc工具将扫描您的计算机以查找系统文件错误。如果它检查到错误,windows将修复和替换文件。一.搜索找到这个鼠标右键管理员身份运行打开。

2024-03-17 20:18:48 203

原创 Qt pro项目文件属性

二. Qt pro项目文件属性使用示例。一.Qt pro项目文件属性介绍。

2024-03-17 19:51:13 578

原创 QML 添加扩展插件QQmlExtensionPlugin

在这个类中,实现registerTypes()和initializeEngine()方法。(1)在main.cpp中,使用QQmlApplicationEngine的addImportPath()方法添加插件库的路径。2.在MyPlugin类的实现文件中,实现registerTypes()和initializeEngine()方法。(2)在QML文件中,导入插件库及QML中使用注册的类型。5.将生成的插件库添加到QML应用程序的搜索路径中,4.编译项目,生成插件库 MyPro.dll。

2024-03-17 13:28:26 587

原创 Qt 不同数据类型转换

在Qt框架中,处理JSON数据时经常需要将JSON对象转换为字符串格式,以便于存储或传输。QJsonDocument类提供了这样的功能,它允许开发者将JSON对象转换成不同格式的字符串。综上所述,QJsonDocument::Compact是Qt提供的一个用于生成紧凑格式JSON字符串的选项,它有助于减小数据大小并简化部分解析的过程。在需要节省空间或传输数据的场合,使用这一选项会非常有帮助。知识点补充 :QJsonDocument::Compact讲解。QJsonDocument::Compact是。

2024-03-17 10:59:16 303

原创 QML 布局管理器之ColumnLayout

QML中的ColumnLayout是一种布局元素,用于在垂直列中排列其子元素。一.ColumnLayout讲解。

2024-03-17 00:05:37 250

原创 QML 布局管理器之RowLayout

二.RowLayout使用示例。一.RowLayout讲解。

2024-03-16 23:39:50 274

原创 QML 布局管理器之GridLayout

在QML中,GridLayout是一种用于布局元素的容器。要使用rowspan、columnspan、layoutFillWidth和rowSpacing属性,您可以将一个元素跨越多行和多列,并填充整个宽度,同时设置行间距。请注意,当您使用rowspan、columnspan、layoutFillWidth和rowSpacing属性时,需要确保其他元素有足够的空间来适应新的布局。在上面的示例中,我们创建了一个包含三行三列的网格布局,并在每个单元格中放置了一个按钮。,我们将第四个按钮跨越了两行和两列。

2024-03-16 23:15:47 507

原创 QML 自定义时间编辑控件

qml自定义时间编辑控件。三.时间编辑控件封装。

2024-03-16 11:16:05 82

原创 QML PinchArea捏拉事件

QML PinchArea 是一个用于处理多点触控手势的 QML 元素。它允许用户通过捏合(pinch)手势来缩放、旋转和移动一个对象。PinchArea 通常与一个可缩放、可旋转和可移动的对象一起使用,以便在用户进行手势操作时更新该对象的属性。二.一个简单的 QML PinchArea 使用示例。元素将根据手势进行缩放、旋转和移动。一.qml pincharea讲解。作为背景,并在其中添加了一个。在这个例子中,我们创建了一个。然后,我们添加了一个。,因此需要手动设置。

2024-03-16 09:56:17 154

原创 qml 触摸事件

QML中的触摸事件处理背后原理是基于信号和槽机制,当用户与界面交互时,如触摸屏幕,相应的信号被触发,然后执行连接到该信号的槽函数。信号会在用户点击按钮时触发,并在控制台输出“Button tapped!是一个不可见的元素,通常与一个可见元素配合使用,为其提供鼠标处理能力。则用于处理单点和多点触摸事件,它适用于配有触摸板或触摸屏的设备。信号,并在控制台输出触摸点的坐标。,在QML中,触摸事件通常使用。在这个例子中,我们创建了一个。在这个例子中,我们创建了一个。在这个例子中,我们创建了一个。

2024-03-16 09:32:59 129

原创 Qt 线程池 QThreadPool

然后在主线程中,我们获取了QThreadPool的全局实例,设置了线程池的最大线程数量,并创建了Worker的实例,最后将其提交到线程池中执行。总的来说,QThreadPool提供了一种方便的方式来管理和调度多个线程的执行,通过它可以有效地提高应用程序的性能和响应速度。在使用线程池时,应当注意合理设置最大线程数以及正确处理任务的提交和执行结果。,通过使用线程池可以提高性能、控制并发度、提供任务队列和简化线程管理。一.Qt 线程池 QThreadPool介绍。二.Qt线程池的一个简单使用示例。

2024-03-14 21:37:00 618

C++ libcurl库讲解

C++ libcurl库讲解

2024-04-04

空空如也

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

TA关注的人

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