- 博客(23)
- 收藏
- 关注
原创 ModBus 协议
Rx:01 03 00 00 00 0A C5 CD //读保持寄存器起始地址00 00 数量为10。读写布尔量:输出线圈 0区 00001-09999。读写寄存器:输出寄存器 4区 40001-49999。只读寄存器:输入寄存器 3区 30001-39999。起始寄存器: 二个字节 0-65535。读取输出寄存器 0x03。写入单个输出寄存器 0x06。一个字节: 0 - 255。写入多个输出寄存器0x10。
2023-04-26 14:36:27 567
原创 Qt 网络开发
收到数据会触发信号(readyRead),在连接的槽函数中调用QTcpSocket对象的read/readAll接收。收到数据会触发信号(readyRead),在连接的槽函数中调用QTcpSocket对象的read/readAll接收。//readDatagram(首地址(),长度,发送方ip,发送方端口号);2、UDP数据包套接字--------------QUdpSocket。1、TCP流式套接字--------------QTcpSocket。3、在槽函数中获取和客户端通信的套接字。
2023-04-12 13:19:54 368
原创 标准对话框
/若没有该操作则关闭主窗口才会释放内存。//没有this是系统级、有this是窗口级的。//窗口关闭释放内存。void MainWindow::on_pushButton_2_clicked() //非模态。void MainWindow::on_pushButton_2_clicked() //非模态。//弹出的对话框有两种:窗口级、系统级。
2023-04-03 18:49:28 99
原创 Qt QTreeWidget/QTableWidget/QListWidget
addTopLevelItem:增加一个根节点*item);需要什么就使用QTreeWidgetItem 去创建一个对象。
2023-04-03 16:33:12 148
原创 Qt 信号/槽
自定义信号:只声明不定义 信号怎么触发调用信号函数即可 信号调用的时候一般前面加emit(可写可不写)自定义一个槽函数:权限,特殊的成员函数 头文件中的类需要宏定义Q_OBJECT 需继承QObject。信号和槽的参数要一致(个数,类型)信号函数有五个参数槽函数也要有五个参数。connect尽量放置在构造可以有效防止反复连接。信号参数可以多于槽,反之不行。信号和槽其本质是函数。
2023-03-27 20:56:00 78
原创 强制类型转换
查看运行结果,问题来了,指针p和指针q都是指向a变量的,指向地址相同,而且经过调试发现002CFAF4地址内的值确实由10被修改成了20,这是怎么一回事呢?为什么a的值打印出来还是10呢?其实这是一件好事,我们要庆幸a变量最终的值没有变成20!变量a一开始就被声明为一个常量变量,不管后面的程序怎么处理,它就是一个常量,就是不会变化的。试想一下如果这个变量a最终变成了20会有什么后果呢?
2023-03-27 10:58:18 1861
原创 设 计 模 式
比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。如果对每个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类C来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
2023-03-23 08:57:14 69
原创 C++ 继承
class Derived : public Base{ //Derived 继承 Base 子类(派生类)class Derived : public Base{ //Derived 继承 Base 子类(派生类)class Derived : public Base{ //Derived 继承 Base 子类(派生类)//先执行父类的构造在执行子类构造,然后子类析构,最后父类析构。class Base{ //父类(基类)class Base{ //父类(基类)
2023-03-13 21:14:52 67
原创 C++ 初始化列表/const
int getAge() const{ //该函数只可读不能写。在定义私有变量的时候使用引用与const时二者都需初始化,则可以通过初始化列表来初始化。Student(){ //构造函数(可以有参数)~Student(){ //析构函数(没有参数)
2023-03-08 11:01:26 125
原创 c++ 引用(&)/new/delete
指针:指针就是内存地址,指针变量是用来存放内存地址的变量.不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。在C++语言中,函数的参数和返回值的传递方式有三种:值传递,指针传递和引用传递.引用具有指针的效率,又具有变量使用的方便性和直观性.引用:引用不是新定义一个变量,而是给已存在变量取一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间.实际上引用可以做的事,指针都可以做,为什么还要引用呢?
2023-03-07 19:05:01 200
原创 C++/类和对象/属性和方法
类和对象:类是对象的抽象,对象是类的实例val 和 num 就是两个成员变量也就是两个对象,他们两个都是int类型也就是类C/C++的基本类型实例化对象
2023-03-07 18:59:26 512
原创 cin/cout/命名空间
在使用定义为std的命名空间中某些格式例如:cin、cout 等时,需要在前面定义一个命名空间,才能使用。若没有定义命名空间,则需要加上作用域 若重复的使用某个语句时则可以定义一个命名空间 一般不定义命名空间与定义的另一个命名空间有重合,若有则不影响若命名空间的内容有重合,则需要加上只作用域
2023-03-07 10:20:18 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人