一、C++基础(上)

1、什么是C++?

C++是C语言的升级版,在C的基础上增加了很多功能。是一种高级语言。

2、 什么是面向对象?什么是面向过程?

C语言就是面向过程,C++面向对象。
举例:a+b。直接计算a+b就是面向过程。
面向对象是给a+b穿上一层衣服,不是直接计算a+b。

3、C++的灵魂,C++的类

类是C语言结构的升级版,类的成员可以是变量也可以是函数。

4、如何定义一个类

class student
{public:char name[64];char age;
}

5、什么是对象?

对象是类的实例化。类定义出来的实例是对象。

6、如何定义对象

直接定义

student my; //student就是类,my就是对象。

在堆中定义:

student* my = new student;

删除对象,只能删除在堆里面定义的对象。释放堆里面的内存。

delete my;

7、怎么访问类的成员

普通的直接用点. 指针类型的用箭头->

8、类的成员函数

因为类里面的成员不仅可以试变量,也可以是函数。
第一步,在类里面声明函数。

class student
{public:char name[64];char age;void test(){cout<<"123"<<endl;}
}

第二步,实现这个函数。可以直接在类里面写。也可以在类外面写。

class student
{public:char name[64];char age;void test();
}
void student::test()//student表示属于这个类里面的函数,不加的话会被识别成普通函数
{cout<<"123"<<endl;
}

访问函数和访问变量是一样的。

9、类的访问符

类的访问符就是对类的成员 进行权限管理。
public:表示函数和变量是公开的,任何人都可以访问。
private:表示函数和变量只能在自己的类里面自己访问自己,不能通过对象来访问。

class student
{public:char name[64];
private:char age;int hhhh;void test();
}
void student::test()//student表示属于这个类里面的函数,不加的话会被识别成普通函数
{cout<<"123"<<endl;hh = 100;
}
student.age;//是无法访问的,提示报错。可以强行访问。
//比如我们绕一个弯,可以通过访问my.test,来访问hhhh;

protected:表示函数和变量只能在自己的类里面自己访问自己,但是可以被派生类访问。

一、C++基础(下)

1、类函数的重载特性

类函数的重载特性就是说我们可以在类中定义同名的函数,但是参数不一样。
重载函数会在调用的时候,根据参数的类型,去匹配响应的函数进行调用。

2、构造函数和析构函数

析构函数:假如我们定义了析构函数,当对象被删除,或者生命周期结束的时候,就会出发析构函数。
构造函数:假如我们定义了构造函数,当对象被创建,就会触发构造函数。
如何定义?
1、构造函数和析构函数的名字和类名一模一样。
2、析构函数前面加一个波浪线。
构造函数可以被重载。析构函数不能被重载。

3、类的继承

类的继承允许我们在新的类中继承父类的public和protected部分,private是不能被继承的。
当我们觉得这个类不好的时候,可以使用类的继承,添加我们所需要的的功能。
格式:class 儿子:public 爸爸
{
public:…
protected:…
}

class student
{public:char name[64];char age;void test();
}
class mystudent: public student
{public:int grade;
}

如何在子类中访问父类的成员?
也是通过.和->访问。

4、虚函数和纯虚函数

虚函数:有实际定义的,允许派生类对它进行覆盖式的替换,virtual 来修饰。
纯虚函数:没有实际代码定义的虚函数就是纯虚函数。
举例:

virtual void test();//虚函数
virtual void test(){};//纯虚函数

怎么定义一个虚函数?
用virtual来修饰,虚函数是用在类的继承上的。
虚函数的优点?
可以预留接口,实现分工合作。

三、用QT做一个简单的界面

1、QT基础
qt的移植性很强,一套代码不要改太多,直接通用所以平台。不久将来将要用到单片机上。
2、做一个简单的qt界面
做一个简单的QQ登录界面,我们用到的组件,放图片,放文本,放GIF图的组件就是qlabel。
放账号和密码的对话框用的是qlinedit,按钮我们使用的组件是qpushbutton。密码配置在qlinedit echoMode中设置成password。

四、信号和槽

1、给控件改名字
为了分析代码方便,我们要给控件改名字。
2、什么是信号和槽
信号:信号就是控件发出的特定信号。
比如按钮的信号:

槽:就是槽函数的意思,我们可以把槽函数绑定在某一个控件信号上,当按键按下的时候,触发槽函数。

3、怎么关联信号和槽
<1>自动关联
右键,转到槽。系统自动生成声明,在widget.cpp生成回调函数。在回调函数中写入想生成的功能即可。
槽函数只能声明到private slots或者public slots下面。
<2>手动关联
手动关联需要用到这个函数。

 connect(ui->logoBt,SIGNAL(clicked()),this,SLOT(logoBt_clicked_slots()));connect(A,SIGNAL(B),C,SLOT(D));//当对象A发出B信号时,就会触发对象C的槽函数D。

五、仿写一个界面

给QT工程添加图片

第一步:添加资源文件
第二步:引用这个图片
右键->改变样式表->找到文件
图标下载网址 :链接

界面布局

QT下的布局:
1、水平布局
2、垂直布局
3、栅格布局
加入弹簧拖拽。

界面切换

步骤一:创建一个新的界面
在新创建的界面中画图。

设置返回按钮的链接,右击之后转到槽函数。之后再在槽函数中设置this->close();关闭窗口。
验证账号和密码登录正确。

void Widget::logoBt_clicked_slots()
{//    qDebug("启动");QString  username = ui->userEdit->text();//把获得到的账号数据放到username中QString  password = ui->passwordEdit->text();//把获得到的密码数据放到password中if(username == "827890053"&&password == "123")//密码正确 创建新界面{ctrl *ct = new ctrl; //在ctrl中new一个对象ct->setGeometry(this->geometry());//获取当前界面的宽和高ct->show();//显示这个新建的界面}}

QT上位机学习(一)相关推荐

  1. qt串口采用队列_基于STM32的RGB调色器——STM32程序和Qt上位机全开源

    前言 uFUN开发板1.0版本评测时,基于Qt写了个小上位机,可以通过串口来控制板子上的RGB灯,通过控制,可以混合出任意的颜色,今天整理了一下,开源这个Qt上位机和STM32代码. 项目介绍 基于u ...

  2. 基于uFUN开发板的心率计(三)Qt上位机的实现

    前言 上两周利用周末的时间,分别写了基于uFUN开发板的心率计(一)DMA方式获取传感器数据和基于uFUN开发板的心率计(二)动态阈值算法获取心率值,介绍了AD采集传感器数据和数据的滤波处理获取心率值 ...

  3. 基于STM32的RGB调色器——STM32程序和Qt上位机全开源

    文章目录 前言 项目介绍 uFUN开发板 STM32下位机 Qt上位机 我的评测文章 关于我 前言 uFUN开发板1.0版本评测时,基于Qt写了个小上位机,可以通过串口来控制板子上的RGB灯,通过控制 ...

  4. STM32串口烧录BIN文件、字库文件【QT上位机】- Uart_Transfer_BIN_to_EX_FLASH

    STM32串口烧录BIN文件.字库文件[QT上位机] 项目已开源至GitHub,供大家一起学习使用 点我传送 这里写目录标题 STM32串口烧录BIN文件.字库文件[QT上位机] 一.上位机部分 1. ...

  5. FPGA基于XDMA实现PCIE X4通信方案 提供工程源码和QT上位机程序和技术支持

    目录 1.前言 2.我已有的PCIE方案 3.PCIE理论 4.总体设计思路和方案 5.vivado工程详解 6.驱动安装 7.QT上位机软件 8.上板调试验证 9.福利:工程代码的获取 1.前言 P ...

  6. 【HNU小学期硬件实训】基于QT上位机的汽车监控警报系统

    测试视频已上传到b站: 基于QT上位机的汽车监控警报系统 一.绪论 本次实验的选题是基于 QT 上位机的汽车行驶监控警报系统,灵感来源于本人在行驶电动车过程 中遇到的问题,为汽车模拟了不同的场景,外接 ...

  7. 【USB网络摄像头】基于mjpeg-streamer的视频采集与播放【QT上位机软件】

    前言 最近一直在尝试制作一个,网络摄像头,先后分别尝试了使用QT包装的UDP类TCP类,和LINUX中的socket编程等方式,但是非常遗憾,都没有取得非常好的播放效果.以为只要一帧一帧的传输视频数据 ...

  8. Qt上位机软件串口通讯

    录了一个串口讲解的视频,分别放在了抖音和B站,大家可以看看,主要讲了一下原理, B站我的主页:laorenshen的个人空间_哔哩哔哩_Bilibili 视频源码下载免费:Qt上位机软件串口通讯,视频 ...

  9. 1.QT上位机开发之表格设计-TABLE WIDGET

    QT上位机开发之表格设计-TABLE WIDGET 开发平台: QT Designer QT5 系统:Windows 11 软件语言:python 项目需要开发上位机软件用于模块测试,自己之前没有做过 ...

  10. FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码

    目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.vivado工程1--彩条视 ...

最新文章

  1. eclipse打包成jar_Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?
  2. json-server-----》基本使用
  3. SAP Spartacus里product数据请求的HTTP url是在哪里维护的
  4. CMSIS-DAP和J-Link、ST-Link是什么关系?
  5. Java这些高端技术只有你还不知道,薪资翻倍
  6. 汽车理论课后习题matlab程序,汽车理论课后题matlab程序
  7. Windows下安装神通数据库
  8. android笑脸切图,朋友圈小符号表情怎么弄?朋友圈文案小符号表情大全
  9. python库源码阅读:ddddocr
  10. 模仿电影中黑客电脑界面,CMD装逼代码
  11. 吉时利DMM6500数字万用表,更高的生产测试量和更低的测试成本
  12. UTC时间与北京时间和纽约的时间
  13. Linux下动态库so查找与函数列表
  14. Gentoo Ebuild 和 Overlay
  15. SCI常用词语及技巧 - 易智编译EaseEditing
  16. linux或者UC/OS
  17. 小时代的成功可复制:郭敬明和他的大数据
  18. 自动提取word文本,并保存到excel
  19. C语言程序设计基础OJ练习题(实验十结构体与共用体)
  20. SECVISION智能楼宇视频监控防泄密解决方案

热门文章

  1. 如何设计神经网络结构,如何设计一个神经网络
  2. Twitter 没有在美国总统竞选期间宕机
  3. 直播答题狂撒币,这些“AI开挂神器”如何在10秒内算出正确答案?
  4. 【 MATLAB 】mod 函数介绍
  5. 数据库原理和应用(2)—— 数据库系统的组成
  6. 动手学深度学习-加载数据集时报错(d2l.load_data)
  7. rust下沉试密室怎么用_魔兽7.1考古任务黑鸦堡垒密室在哪 钥匙使用消失二楼铁门怎么开...
  8. NPOI 连续插入多张图片的办法,及部分样式的代码
  9. Error starting userland proxy: listen tcp 0.0.0.0:xxx端口: bind: address already in use解决办法
  10. 6月书讯 | 初夏,正好读新书