自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Error:bool QCustomPlot::removeItem(QCPAbstractItem*) item not in list: 70055640

在QCustomPlot继承类的析构函数中removeItem掉QPointer< QCPItemTracer>、QPointer< QCPItemText> 等类。或者delete掉创建QPointer类的实例,当然创建了QPointer的类也要在析构函数中进行removeItem;使用Qt C++ /QCustomPlot,出现bool QCustomPlot::removeItem(QCPAbstractItem*) item not in list: 70055640的报错,

2024-03-30 23:34:01 206

原创 获取子对象列表 进行筛选 特定操作 Qt C++

【代码】获取子对象列表 进行筛选 特定操作 Qt C++

2023-12-23 22:44:48 415

原创 跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)

XxwTracer用于在图表中显示鼠标所在位置的x,y值XxwTraceLine用于在图中显示水平或垂直的虚线头文件XxwTracer.h////// \brief The XxwTracer class:在图表中显示鼠标所在位置的x,y值的追踪显示器///Q_OBJECTpublic:XAxisTracer,//依附在x轴上显示x值YAxisTracer,//依附在y轴上显示y值DataTracer//在图中显示x,y值protected://是否可见//类型。

2023-12-15 18:19:39 610

原创 Qt Creator 11.0.3同时使用Qt6.5和Qt5.14.2

有时为了针对不同版本的源码或是需求,需要即使用Qt6.xx,又要用Qt6.xx。安装Qt时,一般会同时安装Qt Creator这款IDE作为开发平台。而安装不同的Qt版本时,配套会安装上不同版本的Qt Creator。**在同一台电脑上使用多个版本的Qt Creator可能会导致卡顿等问题,并且也不方便****于是,就需要在同一个Qt Creator上使用不同的Qt版本**

2023-12-02 17:48:19 1243

原创 nullptr和NULL的区别

1.表示空指针:当一个变量或对象被声明为指向某个类型的指针,但没有初始化为指向任何对象时,可以使用nullptr来表示这个空指针。2.表示不存在的元素:当访问数组或结构体中的不存在的元素时,可以使用nullptr来表示这个元素不存在。nullptr是一个空指针类型,而NULL是一个整数类型(通常为0)。在表示空指针或空对象时, 推荐使用nullptr。而NULL就当做0使用就好。

2023-11-12 00:54:46 239

原创 条件满足时,打印一次当前时间,每十秒最多打印一次

【代码】条件满足时,打印一次当前时间,每十秒最多打印一次。

2023-09-22 09:55:41 91

原创 qt creator 11.02 debug symbols和qt creator 11 .0.2 plugin development各自的特点

Debug Symbols 是用于调试和故障排除的工具,它可以帮助定位代码中的错误和异常行为。Qt Creator 11.02 提供了更好的调试支持,包括 Debug Symbols 功能,以提供更好的调试体验和错误排查能力。Qt Creator 11.0.2 支持插件开发,使开发人员能够扩展 Qt Creator 的功能,满足特定需求,并提高开发效率。

2023-09-20 17:59:11 413

原创 Qt 用什么类型的文件存放日志

SQLite数据库文件(SQLite Database File):与你提到的数据库相似,可以使用Qt提供的QtSql模块连接和操作SQLite数据库文件,将每条日志保存为数据库表中的一条记录,并可以使用SQL语句进行查询和管理。XML文件(XML File):将日志以XML格式保存在文件中,每条日志作为一个节点,可以使用Qt提供的QXmlStreamReader和QXmlStreamWriter等类进行解析和生成,方便进行查询和管理。CSV文件可以使用Qt的文件读写操作进行查询和管理。

2023-09-19 17:53:49 144

原创 centos7怎么解压zip文件(以及如何联网)

3.也可指定解压后文件放在哪儿:unzip xx.zip -d /xx/xx/xx。1.首先要切换到压缩包所在的文件目录:cd 后跟文件目录。2.使用unzip进行解压缩:unzip 后跟文件名。安装压缩和解压(zip and unzip)工具。注意点:NAT、DHCP。

2023-09-15 16:42:12 661

原创 Linux的Qt编译出现:-1: error: cannot find -lGL问题的解决方法

在将windows平台上开发的Qt界面程序移植到Linux Ubuntu系统中,在构建项目时出现以下编译问题: error: cannot find -lGL。但是 Qt 在链接阶段查找的 OpenGL 链接库是不带版本号的。因此,可以在 /usr/lib/ 目录下为 OpenGL 链接库创建一个链接。Qt是支持跨平台的C++图形用户界面应用程序开发框架,在一个平台上开发好应用程序可以在多个平台方便移植。Ubuntu自带的 OpenGL 链接库在后缀中添加了版本号,例如。即,没找到libGL.so 库。

2023-09-14 21:03:05 4189

原创 QT--SQLite:查询、添加

然后使用prepare函数添加要执行的语句,这里可以像上面一样通过bindValue添加变量,也可以通过字符串直接添加(注释所示) ,这里我的两个Number数据类型是integer,如果数据类型是text,则需要将内容用单引号’ '引上。qt关于sqlite的简单内容就这些,增删改查,用到的类和函数只有几个,唯一需要注意的就是sql语句了,毕竟错了编译器检查不出来,要细心点。最后通过exec函数执行,next函数进行移动,value函数获取内容,这样就通过遍历获取到了所查询的内容。

2023-09-13 23:34:05 620

原创 Qt---SQLite

使用函数addDatabase()创建QSqlDatabase对象时只是设置了驱动程序名称,设置的connection Name会被自动添加到应用程序的数据库连接名称列表。Qt数据库编程中会用到模型/视图结构,例如用一个QSqlTableModel模型表示一个数据表的数据,然后用一个QTableView组件显示这个QSqlTableModel模型的数据。前面步骤只是加载了数据库驱动,创建了连接,想要打开一个具体的数据库,还需要设置连接数据库的参数,例如数据库名称、用户名、用户密码等。

2023-08-10 18:00:58 57

原创 LwIP---基础

#### pbuf.c 实现了LwIP对网络数据包的各种操作。网络数据包在LwIP内核中以pbuf结构体的形式存在,这提高了LwIP内核对数据包的处理速率,也提高了数据包在各层之间的递交效率。pbuf结构体也是我们使用RAW/Callback API进行网络应用程序开发的关键。 #### raw.c 实现了一个传输层协议的框架,我们可以在该文件的基础上修改和添加代码,实现自定义的传输层协议。与UDP/TCP一样,它可以与IP层直接进行交互,这类似于RAW Socket。在实际应用中,我们常使用UDP

2023-08-07 17:28:11 97

原创 自动驾驶1

其原理是采用惯性定律实现的,这些传感器从超小型的的MEMS传感器,到测量精度非常高的激光陀螺,无论尺寸只有几个毫米的MEMS传感器,到直径几近半米的光纤器件采用的都是这一原理。最基础的惯性传感器包括加速度计和角速度计(陀螺仪),他们是惯性系统的核心部件,是影响惯性系统性能的主要因素。超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t(秒),就可以计算出发射点距障碍物的距离(s),即:s=340t/2)特点:障碍物识别,准确率高。

2023-07-20 00:07:59 96

原创 QTableWidgetItem通过界面修改值和通过settext修改值的区别

通过setText()方法修改值是在代码中通过调用QTableWidgetItem的setText()方法来修改单元格的值。这种方式适用于在程序运行过程中动态修改表格数据的情况,比如根据用户的操作或者其他条件来更新表格内容。这种方式可以在不显示表格的情况下进行修改,但是需要手动触发更新操作,比如调用表格的update()方法或者重新设置表格的数据模型。通过界面修改值是指用户直接在表格中进行编辑操作,比如双击单元格进入编辑模式,然后通过键盘输入新的值。用户可以通过按下回车键或者切换到其他单元格来确认修改。

2023-07-05 09:06:20 903

原创 回顾QT自带的控件,表格、窗口等

本来上午还在想着把数据量用图来做,结果计划有变,现在回归到用表格做,就只用qt只带的控件做就够了,正式做之前,我先来回顾下大体要用到的控件。

2023-06-28 16:34:22 253

原创 qt c++ QGraphicsView

最近项目需要用到滚动条,原本的界面是直接继承QWidget写的,如果要添加滚动条,就要用到QScrollBar、QScrollArea等类,我研究了半天,感觉自己智商不够难以应用,QML也试了下,也没搞出来。最后呢,就决定先用QGraphicsView试一下,首先要解决的就是滚动条样式的问题,因为默认的滚动条实在是太丑了,咱不说搞的很完美,但至少让它好看点。在QGraphicsView中,进行鼠标响应的方式和在QWidget中差不多,都是使用mousePressEvent等函数。使用update();

2023-06-26 16:20:45 751

原创 C++,switch和if else,哪一个的效率更高

一般来说,C++中的switch语句比if else语句的效率更高。这是因为switch语句使用了跳转表(jump table)来实现,

2023-06-20 10:56:22 1002 1

原创 qt(C++),字符串打印分行显示

最后,我们使用QPainter在指定的矩形中绘制字符串。如果字符串有两行,我们使用drawText()函数分别在两行中绘制字符串。如果字符串的宽度超过了指定的矩形宽度,我们将字符串分成两行。可以使用QFontMetrics类来计算字符串的宽度和高度,然后根据需要将字符串分成两行,最后使用QPainter在指定的QRect中绘制出字符串。以上示例中,首先定义了一个长字符串和一个字体。然后创建一个QRect对象来指定绘制的区域,并使用QPainter绘制一个矩形。

2023-06-18 11:45:13 511

原创 ARM、FPGA、VHDL、Verilog概念一览

它提供了全面的设计流程,包括设计输入、仿真、综合、实现、验证和调试等功能,支持多种编程语言和硬件描述语言,如Verilog、VHDL、SystemVerilog等。Debussy VHDL:一种基于VHDL语言的硬件设计验证工具,它可以帮助设计人员在设计过程中进行仿真和验证,以确保设计的正确性和可靠性。需要注意的是,在进行ARM和FPGA的电路仿真设计时,需要对ARM和FPGA的交互进行模拟,可以通过使用仿真器或者开发板来实现。同时,还需要注意电路的时序和时钟同步等问题,确保电路的稳定性和可靠性。

2023-06-15 22:17:50 1701

原创 Qt C++,Model/View框架简介

总之,Model/View框架提供了一个灵活的机制来管理数据的显示和编辑,可以根据实际需求来选择合适的视图和模型类,并通过自定义视图和实现数据的排序和过滤来满足更复杂的需求。实现数据的编辑:通过在数据模型中实现setData()函数,可以使得数据变得可编辑。将数据模型与视图对象关联:使用setModel()函数将数据模型与视图对象关联,这样视图对象就能够显示数据模型中的数据了。实现数据的排序和过滤:可以通过QSortFilterProxyModel类来实现数据的排序和过滤。

2023-06-14 10:22:28 177

原创 嵌入式Linux网络编程基础概念

嵌入式Linux网络编程-TCP/IPTCP/IP简介IP层特性传输层-TCP协议特性网络基础编程套接字(socket)概述地址及顺序处理套接字编程三级目录TCP/IP简介网络接口层:将二进制流转换为数据帧,并进行数据帧的发送和接收。网络层:将数据帧封装成IP数据报,并运行必要的路由算法为IP数据报选路。传输层:端对端之间的通信会话连接与建立,传输协议的选择由数据传输方式而定。应用层:应用程序的网络访问,通过端口号来识别各个不同的进程。TCP/IP模型边界特性TCP/IP分层模型中有两大边界

2023-06-13 18:08:20 132

原创 在qt中使用json作为配置文件_1

Qt可以使用JSON作为配置文件。Qt提供了QJsonDocument和QJsonObject等类来处理JSON数据,可以将JSON数据解析为Qt中的对象,也可以将Qt中的对象序列化为JSON数据。

2023-06-09 23:34:20 1331 1

原创 qt C++,将多线程运用到paintevent

在上面的代码中使用了QtConcurrent::run()函数启动了三个并行任务,并将它们与一个QFutureWatcher对象关联。利用双缓冲QPixmap,将多线程与双缓冲进行结合,在paintevent中只需要进行单线程,这个方法适用于绘制大量数据图像时。// 创建一个QFutureWatcher对象,用于监视并行任务的完成情况。// 将三个并行任务与QFutureWatcher对象关联。// 创建一个QPainter对象。// 等待所有并行任务完成。// 启动三个并行任务。// 绘制完成后的操作。

2023-06-08 23:47:17 374 1

原创 qt,设置窗体的颜色和样式

注意:如果要设置窗体的样式,还需要在 Qt Designer 中或代码中设置相应的样式表。在 Qt 中,可以使用 QPalette 类来设置窗体的颜色和样式。调用控件的 setStyleSheet() 函数,传入你想要的样式表作为参数。点击 “styleSheet” 属性旁边的 “…在属性编辑器中,找到 “styleSheet” 属性。在弹出的样式表编辑器中输入你想要的样式表。选中你想要添加样式表的控件。// 设置背景颜色为白色。

2023-05-31 22:38:08 2876

原创 qt,让窗体透明的方法

创建一个 QGraphicsOpacityEffect 对象,将其应用到窗体上,然后通过设置 QGraphicsOpacityEffect 的 opacity 属性来动态调整窗体的透明度。如果你想要实现窗体的透明度可以动态调整,可以使用 Qt 的 QGraphicsOpacityEffect 类。该函数接受一个参数,表示窗体的透明度,取值范围为 0.0(完全透明)到 1.0(完全不透明)。使用 Qt 的 setWindowOpacity 函数来设置窗体的不透明度。

2023-05-31 21:37:17 698

原创 qt paintevent怎么使用双缓冲技术

1.在需要绘制的QWidget子类的构造函数中,设置setAttribute(Qt::WA_OpaquePaintEvent, true)和setAttribute(Qt::WA_NoSystemBackground, true)属性,表示绘制区域不透明且无系统背景。2.在绘制事件处理函数paintEvent(QPaintEvent *event)中,先创建一个QPixmap对象,将绘制操作都放到该对象上进行。再将该QPixmap对象绘制到QWidget对象上,避免直接绘制到QWidget上。

2023-05-31 21:30:11 489

原创 QTcpSocket传输结构体

QTcpSocket可以传输任何类型的二进制数据,包括但不限于整型、浮点型、字符型、自定义结构体、文件等。在发送数据时,需要先将数据序列化成二进制数据,然后再通过QTcpSocket发送。在接收数据时,需要将接收到的二进制数据反序列化成对应的数据类型。常用的序列化和反序列化方法包括QDataStream、QJsonDocument等。

2023-05-02 22:03:41 637

原创 遍历qvector的方法

方法3:使用std::for_each算法遍历。方法2:使用C++11的foreach循环遍历。方法1:使用QVector的迭代器遍历。

2023-05-02 21:52:08 1460

原创 C++强制类型转换规则(void*)

想要将void*转换为int*,c语言可以直接写"p=q",但在C++中这是不允许的;所以在C++中想要将void*转换为int*,可以使用p=static_cast。而反过来,想要将int*转换为void*,在C++中就可以直接写"q=p";

2023-03-21 14:05:33 2032

原创 栈和队列,

创建链表,遍历输出链表中的各个节点(注:链表丶广义表丶二叉树都是具有递归特性的数据结构)

2022-09-06 17:09:46 86

原创 【线性表】

顺序表和链表的比较?空间性能的比较: 存储空间的分配:链表 优于 顺序表(顺序表每次都需要去分配空间)

2022-09-04 22:14:34 88

原创 for、while、do_while怎么选择

for:适合循环次数固定,循环规律非常明显程序。while:使用最多最频繁的循环结构,具有普适性。do_while:适合至少循环一次的循环结构

2022-01-07 22:39:33 212

原创 C++运算符优先级

C++运算符优先级优先级多元运算符算术运算符1算术运算符2逻辑运算符位运算符1位运算符2位运算符3隐式类型转换强制类型转换IO流的格式控制1IO流的格式控制2I/O流的格式控制3优先级运算符运算符具有优先级和结合性。优先级:级别高的先运算,级别低的后运算。例如: */ 高于 + -结合性:自左向右结合还是自右向左结合。例如:1+2+3,+自左向右结合多元运算符运算符根据运算符对操作数的要求不同,分成:一元运算符:仅需要一个操作数的运算符,例如++等二元运算符:需要两个操作数的

2022-01-07 14:51:08 2329

原创 C/C++基本数据类型所占字节

int: 4bit //int类型长度等于机器字长(16位机:int=2bit; 32位机:int=4bit)float: 4bitdouble: 8bit

2022-01-07 14:25:24 618

原创 指针的间接访问(C++)(int **ppva)

int ***pppva; pppva=&ppva;

2022-01-07 13:46:00 585

原创 (C++)cin.getline()和cin.get()的区别

cin.get(); //读取到数值装不下了,就自己加个\n结束cin.getline(); //读取到\n,然后看数组能装多少就装多少

2021-12-20 17:06:40 875

原创 双机热备(华为防火墙)

现网环境并不完全可控,可能一个链路状态的波动就会导致主备状态倒换,导致新加FW的空数据同步到现网FW

2021-12-19 15:04:46 2199 1

原创 Hybrid

Access、Trunk和Hybrid三种端口模式路由器可以给你的局域网自动分配IP,虚拟拨号。交换机只是用来分配网络数据的。路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机在中继层,交换机根据MAC地址寻址。路由器可以把一个IP分配给很多个主机使用。交换机可以把各有IP的很多主机连起来。PVID英文为Port-base VLAN ID,是表示网络通信中基于端口的VLAN ID,一个端口可以属于多个VLAN,但是只能有一个PVID,收到一个不带tag头的数

2021-06-12 11:16:02 164

原创 干线协议(802.1q/ISL)

干线协议802.1q交换机针对vlan tag数据帧的处理ISL802.1q一台交换机收到一个数据帧,需要判断其属于哪一个vlan有两种方法:1.让数据帧带上vlan tag,通过识别tag得知所属vlan2.给交换机一张表,表里记录 源地址与vlan 的对应关系,通过看源地址得知所属vlan更为常见的方法 是带tag,也就是"帧标记".一台交换机 需要 识别 其它交换机 打上的标记,这就涉及到了多厂商兼容问题.802.1q是IEEE组织定义的帧标记策略,是一个公有的标准先来看原始的数

2021-06-11 23:17:28 1483

空空如也

空空如也

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

TA关注的人

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