自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 问答 (8)
  • 收藏
  • 关注

原创 【QML】QML访问C++

如上是访问c++中的属性的值,然后显示在qml控件上的。但是这个样子的话,属性点无法补齐,不太方便。这个样子就可以访问该类的成员了。记得在qml文件中导入该类。这个是访问类的成员函数的。这个要导入这个头文件。

2025-12-11 19:24:28 302

原创 【QML】C++访问QML控件

这些就可以使用obj->findChild<QObject *>(“rect”);根据对象的名字找到对应的对象,然后使用QQmlProperty修改对的应的属性了。如上图可知,在qml文件里面的qml控件的属性已经被cpp文件的中c++修改了。如上图,触发了qml中的信号后,就打印出c++中的槽函数。如上图,信号和函数和返回值都触发成功了。先创建一个c++类,然后写一个槽函数。main.cpp中加入以下代码。main.cpp文件。

2025-12-10 21:25:44 339

原创 【QML】自定义控件

【代码】【QML】自定义控件。

2025-12-09 23:50:39 131

原创 【QML】Behavior

如果是和多个的状态或者行为的话,可以使用。这个是单击和双击的动态画面。这个也是同样的效果的。

2025-12-09 19:42:16 217

原创 【QML】动画 PropertyAnimation 、并行动画、串行动画

【代码】【QML】动画 PropertyAnimation。

2025-12-09 19:14:48 203

原创 【QML】State和Transition

这个也可以达到改变状态的。使用鼠标事件来改变状态。

2025-12-08 20:37:54 191

原创 【QML】弹窗2

【代码】【QML】弹窗2。

2025-12-01 20:17:49 129 1

原创 【QML】弹窗控件、类

组件 适用场景。Popup 上下文菜单、临时提示(如工具提示)、轻量级浮动面板(如搜索框自动完成)混合使用:某些场景下可组合使用(如 Popup 中嵌套 Dialog 实现多级弹窗)。优先选 Dialog:当需要标准化交互流程(如确认/取消)、强制用户响应时。Dialog 关键操作确认、表单提交、系统级通知(需用户明确响应)优先选 Popup:当需要灵活定位、快速轻量交互或自定义浮动内容时。

2025-11-30 22:19:57 169

原创 【QML】QML的事件系统

注意拖拽区域和被拖拽区域的先后顺序,先出现的在上面,后出现的在下面。下面的界面是拖拽后,可以自己复制 代码玩一下。事件系统:鼠标事件、键盘事件、拖拽事件。

2025-11-26 20:04:18 167

原创 【QML】基本布局

StackLayout (堆叠布局)SplitView (分割视图)1.1 Row (行布局)

2025-11-25 19:03:29 148

原创 【QML】基本控件

继承自 QtObject,是所有可视组件(如 Rectangle、Button)的基类。比 QtObject 多了 布局、渲染、事件处理 等功能。动态对象管理(类似 QObject 的父子层级)信号与槽(signal 和 onSignal)属性绑定(property)

2025-11-23 23:31:33 38

原创 【QML】QWidget和QML的区别

使用OpenGL/Vulkan/Metal等图形API。属性绑定系统:变更时只需更新依赖链,而非全量重绘。GPU保留变换矩阵:旋转/缩放等变换由GPU计算。3D 界面元素 (与 Qt 3D 集成)传统桌面控件 (菜单/工具栏/对话框)复杂文本编辑 (QTextEdit)低端硬件环境 (无 GPU 加速)需要精确像素级控制的传统桌面UI。需要60fps流畅度的场景。需要复杂自定义绘制的应用。具有复杂动画效果的界面。需要3D混合渲染的界面。流畅的动画和过渡效果。高 DPI 屏幕适配。

2025-11-23 20:08:25 64

原创 【C++】std::move与std::forward函数的区别

简介1. std::move(): C++11 引入的一个函数,用于将一个左值转换为右值引用,从而触发对象的移动语义。移动操作的发生条件:只有当右值引用被用于构造/赋值时(例如传递给移动构造函数或 std::string 的移动赋值运算符),才会真正“移动”资源。// 无实际移动,s 仍然有效,这个是不会触发构造函数,资源还在的。左值:有一个明确的地址,可以被取地址的值,可以被赋值的变量(如变量、数组元素、解引用指针)。(这个是和引用一样的,都是共用一个的值,上面的打印就可以知道。

2025-11-20 23:16:53 168

原创 【c++】静态函数

普通成员函数的 ​const​ 修饰的是 ​this​ 指针(即 ​T* const this​ → ​const T* this​)在C++中,静态函数不能直接访问非静态成员变量或成员函数,因为静态函数缺少访问非静态成员所需的 ​this​上下文。方案1:使用std::function和std::bind (将成员函数包装成普通的函数)没有 ​this​ 指针 → 无法应用 ​const​/​volatile​ 修饰。​​volatile​ 同理(修饰 ​this​ 指针的访问方式)

2025-11-17 21:01:45 218

原创 【c++】const修饰的成员函数

底层实现:编译器将 this 指针从 DataProcessor* 转为 const DataProcessor*真相:通过 const_cast 可临时去除const(需谨慎)真相:可通过 mutable 突破限制(特殊场景使用)误区2:const 函数不能调用任何非const函数。误区1:const 函数内完全不能修改数据。const 成员函数的本质。

2025-11-17 19:57:39 162

原创 【Qt】QT的程序打包

1、看看下面,我是使用这个来编译的程序。

2025-11-14 21:40:30 375

原创 【shell】变量内容的增加、删除、替换、测试取代

echo ${变量名/关键字/新字符串} ==>从最左侧开始替换第一个符合条件的关键字。echo ${变量名//关键字/新字符串} ==>从最左侧开始替换所有符合条件的关键字。echo ${变量名##关键字} ==>从最左边删除符合条件的最长关键字。echo ${变量名%%关键字} ==>从最右边删除符合条件的最长关键字。echo ${变量名#关键字} ==>从最左边删除符合条件的最短关键字。echo ${变量名%关键字} ==>从最右边删除符合条件的最短关键字。变量内容的替换与/的数量有关。

2025-11-11 20:23:09 274

原创 【VS】VS .h 和 .cpp 切换快捷键设置

选择 Visual C++ 6 键盘映射方案。在 显示命令包含 中 输入如下命令。打开VS后依次选择如下。

2025-08-14 19:53:26 183

原创 【Qt+OpenGL】绘制旋转正方体

感觉他写的很好,我这些代码是为了方便自己看的。

2025-03-26 16:30:32 486

原创 【OpenGL】

【代码】【OpenGL】

2024-12-28 10:04:40 157

转载 【QT】【转载】QTableWidget用法总汇

tableWidget->horizontalHeader()->setResizeMode//把给定列设置为给定模式。

2024-12-16 10:49:23 369

原创 【C++/STL】std::move和移动迭代器

按值传递结合移动语义适用于需要获取对象副本并且希望利用移动操作提高性能的情况,例如在函数返回大型对象时,按值返回可以利用移动语义避免复制开销。const&传递适用于函数只需要读取对象的值而不需要修改对象,并且不希望改变对象状态或所有权的情况,比如在函数中只是输出对象的某些属性时。比如,如果 source 中的元素被移动到 des之外的某个地方,那么最后它们既不在 source 中也不在 des 中,因此它们实际上就丢失了。当使用const&传递时,传递的是对象的常量引用,不会触发移动语义。

2024-11-14 15:48:17 442

原创 【Linux】Linux 命令awk和sed的简单介绍

在前面计算文件中第一列数字总和的例子中,​END{print sum}​就是在处理完所有行之后,打印出变量 ​sum​的值,也就是第一列数字的总和。在这个命令中,​$1 > 3​是模式(pattern),​{print $0}​是当行满足模式时执行的命令,这里 ​$0​表示整行内容。在这个例子中,​BEGIN{sum = 0}​初始化了变量 ​sum​为0,这个操作在处理文件中的数据之前就已经完成。假设我们要计算一个文件中某列数字的总和,我们可以在BEGIN块中初始化一个变量来存储总和。

2024-11-13 20:32:20 588

原创 【Qt】自定义弹窗

设置透明窗口后就看不见窗口了。当然,也可以使用其它的控件填满。在form.cpp文件中修改如下代码,使用QPainter在子窗口中绘制,不然使用。

2024-11-13 17:27:53 232

原创 【Qt】QTreeWidget的简单使用

【代码】【Qt】QTreeWidget的简单使用。

2024-11-13 17:26:32 461

原创 QTableWidget的简单使用

【代码】QTableWidget的简单使用。

2024-11-13 17:26:00 267

原创 【Qt】Qt的坐标转换(mapToGlobal)

每次点击按键,生成的子窗口在屏幕的左上方,使用**this->pos()**转换的坐标后,子窗口在父窗口的左上方。使用mapToGlobal转换后,每次打开都在按键的左上方。加上一些控件的坐标的计算后,就可以每次打开都在控件的下面了。

2024-07-22 21:03:46 2130

原创 【c++】文件操作

在文本模式下(即没有指定 std::ios::binary),std::ifstream 会对输入进行特殊处理,比如转换换行符(在Windows系统上,可能会将 \n 转换为 \r\n 或将 \r\n 转换为 \n)。在C++中,将文件流的位置指针移动到文件的任意位置可以通过std::fstream、std::ifstream或std::ofstream中的成员函数seekg()和seekp()来实现。截断模式( std::ios::trunc):在打开文件时,如果文件已经存在,则清空其内容。

2024-07-19 16:30:03 1018

原创 【Qt】QTabWidget的tab页隐藏问题

​ 来隐藏一个 ​QTabWidget​ 的特定标签页可能不会达到预期的效果,因为 ​setHidden(true)​ 是用于隐藏整个 ​QWidget​ 的,而不是隐藏 ​QTabWidget​ 中的一个标签页。如果你确实想要隐藏整个 ​QWidget​,那么 ​setHidden(true)​ 是正确的用法,但它不会隐藏 ​QTabWidget​ 中的标签页,而是隐藏整个 ​QWidget​ 对象。请注意,​indexOf​ 方法用于获取指定 ​QWidget​ 的索引。

2024-07-10 20:56:11 5530

原创 【MQTT】开通环信的MQTT服务

https://docs-im.easemob.com/mqtt/qsopen

2024-06-24 20:04:51 185

原创 【Qt】QCoreApplication::processEvents的简单使用

运行过程中点击按键1 后点击按键2,然后再点击按键1。整个过程,按键是可以正常的点击的,不会出现未响应的情况。

2024-06-17 16:52:32 1075

原创 【c++】c++11(使用系统API)遍历指定目录里面的文件

这个是使用系统API遍历的(windows)。

2024-06-11 14:28:47 466

原创 【Qt】 new成功,但是没有进入到构造函数。

如上,在两个工程中,有同样的内部类,但是windows上输出的结果和在linux上的输出的结果是不同的。在linux中,如果出现同样的内部类,虽然是在不同的内部类内使用,但是还是会有问题的,这样。以上两个工程是封装成库的,并被下面的程序调用。当然了,new不成功的情况还是有很多种的。NameTest01工程中。NameTest工程中。

2024-06-05 14:38:41 492

原创 【Qt】QAxObject的简单使用,WPS

/点击按键生成文件。

2024-06-03 10:48:24 1166

原创 【linux】exec相关函数的简单使用

后 使用execl() 函数替换成cppexecTest程序运行,因此子进程不再执行原来的代码,所以子进程不会调用。以上的6个函数都是标准C库的函数,它们实际在Linux系统运行时是调用下面这个Linux系统的标准函数。e(environment) 存有环境变量字符串地址的指针数组的地址。p(path) 按PATH环境变量指定的目录搜索可执行文件。l(list) 参数地址列表,以空指针结尾。v(vector) 存有各参数地址的指针数组的地址。

2024-05-13 10:01:18 464

原创 【c++线程】condition_variable的简单使用

因为wait系列函数一般是在临界区中调用的,为了让当前线程调用wait阻塞时其他线程能够获取到锁,因此调用wait系列函数时需要传入一个互斥锁,当线程被阻塞时这个互斥锁会被自动解锁,而当这个线程被唤醒时,又会自动获得这个互斥锁。如果没有线程在等待,则还函数不执行任何操作。因此wait系列函数实际上有两个功能,一个是让线程在条件不满足时进行阻塞等待,另一个是让线程将对应的互斥锁进行解锁。尝试用两个线程交替打印1-100的数字,要求一个线程打印奇数,另一个线程打印偶数,并且打印数字从小到大依次递增。

2024-05-10 14:02:46 235

原创 判断是不是二叉搜索树【c++】

【代码】判断是不是二叉搜索树【c++】

2024-04-17 14:15:33 300

原创 二叉树的镜像【c++】

【代码】二叉树的镜像【c++】

2024-04-17 11:05:23 290

原创 合并二叉树【c++】

【代码】合并二叉树【c++】

2024-04-17 10:28:22 307

原创 二叉搜索树生成双链表【c++】

【代码】二叉搜索树生成双链表【c++】

2024-04-17 08:43:47 202

空空如也

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

TA关注的人

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