- 博客(74)
- 资源 (3)
- 收藏
- 关注
原创 lib静态库转为a静态库
(2) 将LIB文件 reimp.exe dlltool.exe拷贝至QT安装目录E:\Qt\Qt5.12.6\5.12.6\mingw73_64\bin下,执行方案一的操作,同样可以生成A文件。现有x64 test.dll test.lib 编译器换成了MINGW64,IDE 为QT, 但MINGW64编译器需要的是test.a静态库,需要从test.lib转化为test.a。需要注意:dlltool.exe的不同生成的A文件有时可以用有时不可用,有32位的dlltool.exe。
2024-10-23 11:26:13
550
原创 LIN通讯
目的:为了获取TLINFrameEntry结构体//关于Flags的解释见下图,一般请将这个数值设置成1。//另外如果将这个值设置成3=1+2,表示同时设置FRAME_FLAG_RESPONSE_ENABLE和FRAME_FLAG_SINGLE_SHOT的flags。Length = 8;i < Length;i++){目的:为了获取TLINScheduleSlot 结构体//TLINScheduleSlot Delay 0 一直发送 -1 只发送一次。
2024-08-20 11:24:28
459
1
原创 PID控制
PID控制,全称为比例-积分-微分控制(Proportional-Integral-Derivative Control),是一种经典且广泛应用的自动控制方法。以下是对PID控制的详细解析:PID控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制。PID控制通过结合比例(P)、积分(I)和微分(D)三种控制方式来调整被控对象的输出,使其尽可能接近设定值。
2024-07-15 15:11:51
1110
原创 QVector squeeze()
使用QVector mDataBuf 容器,使用append()函数或者resize()函数所占的内存过大,大概有两个G左右,每个条目运行完后mDataBuf.clear()后所占内存无变化。这是因为动态内存分配和释放是开销较大的操作,而且Qt的设计哲学之一是通过减少不必要的内存分配和释放来提高性能。,Qt 的内存管理器也可能决定保留一些额外的空间以供将来扩展使用,而不是立即将所有多余内存都归还给操作系统。的容量调整为与其当前大小(即元素数量)相匹配,从而可能释放一些不再需要的内存。
2024-07-09 17:33:18
383
原创 cv2.GaussianBlur()--sigmaX
一维高斯分布的概率密度函数(PDF)具有特定的数学形式,这使得它在理论和应用上都非常有用。(2) cv2.GaussianBlur()函数需要设置 高斯核的大小,(宽度, 高度),还有公式中的σ。函数用于对图像进行高斯模糊,这是一种减少图像噪声和细节的方法,常用于图像处理中的预处理步骤。:高斯核的大小,(宽度, 高度)。(1) 高斯模糊是使用高斯核(符合高斯分布的)与原图进行卷积。:输入图像,可以是单通道(灰度图)或多通道(彩色图)的图像。作为单独的参数,有时它会被省略,或者在某些上下文中被隐含地处理。
2024-07-07 15:24:54
597
原创 头文件相互包含 前向声明
error: C2143: 语法错误: 缺少“;”(在“*”的前面)当两个类需要相互访问对方的成员或方法时,通常意味着它们之间存在某种依赖关系。这种依赖关系可能源于类的设计或功能需求。以下是一个简单的例子,展示了当两个类需要相互访问对方成员或方法时,如何使用包含对方头文件的方式来解决循环包含的问题。ClassA和ClassB。ClassA有一个成员变量bPtr,它是ClassB的指针,并且ClassA有一个成员函数,该函数需要访问ClassB的某个成员或方法。同时,ClassB也有一个成员变量。
2024-05-09 11:16:22
413
原创 Cmake Learn
命令用于复制一个源文件到一个目标位置,并在复制的过程中替换源文件中的某些变量。命令用于指定一个目标(例如库或可执行文件)需要链接的库。这个命令将库添加到目标的链接器命令中,以便在构建目标时能够解析目标中的外部符号。命令用于向编译器添加包含目录,使得在编译源文件时可以找到所需的头文件。这通常用于指定项目中的头文件目录,或者是第三方库的头文件目录。这通常用于安装库、头文件、可执行文件等,以便其他项目或用户可以使用它们。是 CMake 中的一个命令,用于将子目录添加到构建过程中。文件,并执行其中的命令。
2024-04-28 17:13:40
957
原创 C++ namespace命名空间 static静态成员
静态成员函数是只能访问静态数据成员和其他静态成员函数的类成员函数。它们不能访问类的非静态数据成员,因为非静态数据成员需要具体的对象实例来引用。静态成员是C++(以及其他一些面向对象编程语言)中的一个概念,它属于类本身而不是类的任何特定对象。静态成员在类的所有对象之间共享,并且不依赖于任何特定的对象实例。命名空间的作用主要是建立一些互相分隔的作用域,以分类和区别不同的代码功能,避免不同的代码片段(通常由不同的人协同工作或调用已有的代码片段)同时使用时由于不同代码间变量名相同而造成冲突。
2024-03-27 13:31:52
601
原创 QT 最近使用的项目配置文件
这两个就是,要同步更改,不然会全部消失清空,可以把路径和DisplayNames去掉一个,最近打开的项目文件那里也相应的减少了一个。ProjectExplorer 下面的。
2024-03-27 09:28:26
867
原创 QTableWidget实现复制粘贴
(2)选择多个单元格复制,可进行同样多单元格粘贴,行列均可。该类继承了QTableWidget,代码较为简单。(1)选择一个单元格复制,可进行多个单元格粘贴。
2024-02-29 14:17:13
965
原创 回调函数应用场景
例如,将使用一个类,在图形场景中绘制一个正方形,并由W,A,S,D键控制。也就是说,它应该把这个类的函数作为它的 CallBack 函数。回调函数(Callback Function)是一种编程模式,其中一个函数(称为回调函数)作为参数传递给另一个函数,并在需要时被调用。你可以定义不同的回调函数来处理不同类型的事件,这些函数可以执行你需要的任何操作,比如更新屏幕上的内容、保存数据、启动动画等。• square.h - 其对象将使用 CallBack 函数的类的头文件。2 示例--图形用户界面回调。
2024-02-20 14:57:57
595
原创 apt-get install时遇错误404
执行 sudo apt-get install libglib2.0-dev 或者其他安装命令时出现如下类似错误。找你相应的系统 我的是Ubuntu 18.04。(1) 按照如上面说的 图形界面配置。将上面的内容替换掉原来的内容。
2024-01-29 09:29:59
426
原创 QT假如有三个线程如何保证顺序执行
同样,当线程2完成后,它会释放sem3,这允许线程3开始执行。在这个例子中,QtConcurrent::run用于在一个新的线程中运行一个函数,它返回一个QFuture对象,你可以使用QFuture::waitForFinished来等待线程完成。这种方法的优点是它非常简单,但是它只适用于你需要按顺序执行的线程,并且每个线程只执行一次的情况。如果线程编号不匹配,线程会等待条件变量。这种方法的优点是它可以处理更复杂的线程同步问题,例如,当线程的执行顺序不是固定的,或者当线程需要等待多个条件时。
2024-01-28 16:58:08
884
原创 QT on_objName_clicked()信号与槽失效
没有Q_OBJECT不能使用信号与槽,主要用于实现 Qt 的元对象系统。Qt 的元对象系统提供了信号和槽的机制、属性系统以及事件系统。个人理解,QT在C++语言上面写的框架,信号与槽的使用用到了QT封装的Q_OBJECT QObject,这点和 UE4 中比较像,UE4中同样需要声明一个宏,同样是C++语言。这是我遇到的情况,多写了ui->setupUi(this);UI文件一个控件,点击转到槽,在槽函数中打印输出,没有输出。
2024-01-25 15:55:56
691
原创 Python 类属性 实例属性
需要注意的是,这个类比并不是完美的,因为Python和C++在类型系统、内存管理、继承机制等方面有很大的不同。然而,从这个简单的角度来看,Python中的实例属性类似于C++中的非静态成员变量,而Python中的类属性类似于C++中的静态成员变量。在Python中,实例属性和类属性与C++中的概念有一些相似之处,但它们并不完全等同。Python是一种动态类型语言,而C++是一种静态类型语言,因此它们在处理属性和方法时有所不同。不过,我们可以尝试建立一些类比来帮助理解。
2024-01-18 15:55:27
413
原创 2D绘图--视口窗口setViewport setWindow
(1)视口定义显示区域,和setWindow窗口有一定的映射关系,设置好窗口的坐标系后,后续绘制就按照窗口坐标系绘制即可(2)可以通过先设置视口,再设置对应的窗口的方法,可以准确地显示在不同的绘图设备界面上。
2024-01-11 14:50:21
611
原创 2D绘图之坐标系统--错切shear()
在平面R2 =Rx R上,水平错切(或平行于X轴的错切)是一个将任一点(x,y)映射到点(x+my,y)的操作,m是固定参数,称为错切因子。所以上面的最终点的位置应是(50,50+0.5*50) (50+0.5*50,50) (75,75)错切是在某方向上,按照一定的比例对图形的每个点到某条平行于该方向的直线的有向距离做放缩得到的。原来竖直的线则变成斜率为1\m的斜线.
2024-01-10 14:13:22
555
原创 QT多线程通信
在主函数中,我们创建了两个线程,一个执行waitForData()函数,另一个执行sendData()函数,从而实现多线程的同步。总的来说,QFutureWatcher是一个功能强大的类,允许我们方便地监视和处理异步任务的结果。通过连接适当的信号和槽函数,我们可以灵活地处理异步操作的状态和结果,从而提高程序的响应性和性能。总的来说,QFuture是一个强大的类,提供了对异步操作结果的访问和监视功能。通过使用QFuture,你可以更好地管理异步操作的流程和状态,并避免阻塞主线程,从而提高程序的性能和响应性。
2024-01-09 17:45:32
1516
原创 QT 简单连接WIFI模块
这一部分是使用命令连接对应的WIFI ,cmd_password 是设置的密码,cmd_connect应是连接相应的WIFI,此处是使用代码连接WIFI 若手动连接 可以将这部分注释掉。经过调试发现 若为代码连接WIFI 此处需要加上1秒的延时 若为手动连接WIFI 可注释掉。此处进行连接 等待超时时间2秒。
2024-01-05 13:30:43
1961
原创 001FreeCAD源码学习--Application.cpp
此代码为FreeCAD-main\FreeCAD-main\src\Gui下面的Application.cpp的内容。
2023-12-29 09:42:03
730
原创 Qt 大小端转换函数qFromBigEndian qFromLittleEndian
从小字节顺序转换src,并返回该数字的主机字节顺序表示形式。在主机字节顺序为大端序的CPU架构上(例如PowerPC),这将返回字节顺序交换的src;否则它将返回未修改的SRC。从大端字节顺序转换src并返回该数字的主机字节顺序表示形式。在主机字节顺序为小端序的CPU架构上(例如x86),这将返回字节顺序交换的src;否则它将返回未修改的SRC。
2023-11-30 10:30:08
3212
原创 QFile读取无符号类型数据unsigned char
QFile readAll 返回值类型QByteArray为char类型,需要做以下的转换。
2023-10-19 15:00:48
244
原创 QCustomPlot单多坐标系显示
1 可进行单坐标系多坐标系的切换2点击QTableWidget的checkbox可以控制坐标系的数量并显示相应的曲线3 在多坐标系中显示游标4 更改曲线的颜色5 坐标系X轴同步 6 曲线的放大缩小、左右移动、上下移动7 创建单X轴多Y轴坐标系
2023-09-13 17:38:22
4552
9
原创 QML与C++交互
QML与C++交互 1 QML获取C++的变量值2 QML获取C++创建的自定义对象3 QML发送信号绑定C++端的槽4 C++端发送信号绑定qml端槽5 C++调用QML端函数
2023-08-12 16:50:04
820
原创 QT插件简单使用
1 新建一个其他项目的子文件目录后,创建一个普通的 QMainWindow 项目。将 Interface.h拷贝到该目录下 与Plugin.pro同级目录。选择C++ Library ---->QT Plugin。编译器 mingw 64-bit。1 右击主项目 新建子项目项。(也可以新建另一个工程 )
2023-07-18 17:17:51
332
原创 智能指针std::unique_ptr,std::shared_ptr和std::weak_ptr enable_shared_from_this
如果std::weak_ptr所引用的对象还存在(也就是说,还有至少一个std::shared_ptr指向它),那么这个方法将返回一个新的std::shared_ptr指向该对象。std::enable_shared_from_this是一个模板类,它允许你从任何对象(该对象已经被一个std::shared_ptr管理)中安全地获取一个std::shared_ptr。在C++中,有三种主要的智能指针:std::unique_ptr,std::shared_ptr和std::weak_ptr。
2023-06-22 21:57:53
172
原创 ubuntu vim常用命令总结
安装ctags工具。在源文件目录下(源文件根目录)执行如下命令:ctags -R打开源文件,将光标定位到某个函数名处,按快捷键 " ctrl+ ] ",就可以跳转到函数定义的位置。跳回函数调用处,使用组合键“ctrl + t”。在当前文件内,能够使用下面命令来快速跳转到变量定义处。字符串gd在当前函数内查找当前光标下的单词,若是找到,就跳转到该单词在函数内第一次出现的地方。对局部变量来讲,也就是跳转到变量定义处。
2023-06-15 22:26:39
2682
原创 QTableWidget自动换行
1 setWordWrap()方法将文本内容在指定的单词处换行。不要插入一行就调用,界面会卡死。2 全部插入单元格后调用。
2023-06-14 09:44:26
2729
1
原创 VS2019 添加中文注释编译错误
不知道是否适用其他的 如果不适用 编码选择utf-8 多试试。添加注释后编译出现错误 C2059 语法错误:“}”2 选择简体中文GB2312。3 行尾 Windows。1 文件高级保存选项。选择编码后可以运行了。
2023-06-13 22:52:59
622
原创 char(utf8)转为wchar_t 中文乱码
MultiByteToWideChar函数可以将UTF-8编码的char类型字符串转换为wchar_t类型字符串。参数wchar_t类型,因此需要进行此类转换。经过多次尝试,以下方法可行。
2023-06-12 13:31:49
814
1
PIDControl.rar
2024-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人