嵌入式UI(简易微信局域网聊天室)

一、课本任容

1、显示设备:

LCD屏:全屏发光;
OLED屏:单屏发光,发光效果好
LED屏:组成大屏幕的小灯
数码管:组合形成数字屏幕,如:空调温度示数

2、C++语法

C语言面向过程
C++面向对象

1>C与C++对象区别:

C++以吃为例:馍菜汤,针对于对象,吃的东西
C以做菜为例:买菜,洗菜,切菜,炒菜等,而C++则是点外卖解决做菜的事情

2>基本函数区别:

C打印函数:printf("打印的内容/格式控制符如/换行")
C++打印函数:cout<<"打印的内容"<<endl;

3、Qt软件

1、制作UI的核心工具
2、Qt是一个开源的软件
3、Qt是一个集成开发工具

1、集成开发工具:

在编程领域:
写程序>编辑器>编译器(将程序语言转换为机器语言)>运行
集成开发工具就是将上述三个工具放到同一个软件当中

2、非集成开发工具:

非集成开发工具如:Linux,Redhat
在红帽子中
编写程序:vim,gedit,vscode
编译程序:gcc,makefile
执行程序:./

创建一个Qt工程学习C++语法,不涉及页面

1、配置Qt
设置<选项<语言<system

2、建立 Qt工程
路径不能有中文,创建一个默认文件夹,编辑器<qmake

C++语言框架
头文件:#include<iostream>
主函数:int main(int agrc,char*argv[]);不含参int main(void)
函数声明:using packeted std;
输出函数:cout<<"标准输出内容"<<endl;
在C++中可以不用格式控制符

二、变量的定义

1、整型变量:int
2、字符串:string

输入函数
1、函数:cin
2、用法:cin>>变量名:
示例:

2、C++中的类:
C++包含了属性和方法(和C中的结构体类似)
类的定义:
操作权限:public(可以在类的外部定义和使用),可以被继承
受保护权限:protected(不可以在类的外部定义,可以在类的外部使用),不可以被继承
私有权限:private(不可以在类的外部定义,不可以在类的外部使用)不可以被继承
class 类名
{
属性(一般的变量)
方法(一般的函数)
}
类外声明(方法在类外定义)
构造函数特点:
1、在程序开始的时候执行的第一个函数
2、函数名和类的名是相同的
析构函数:
1、在程序结束的时候执行的最后一个函数
2、函数名是类名的取反:HGD::~HGD(void){cout<<""<<}

QString类(官方)

内容:
1、实现一个类似微信聊天的聊天界面
2、登陆界面:账号和密码(以字符串的形式体现在程序当中)
3、对账号密码的字符串的程序验证是否正确
QString提供一系列的方法去操作:
1、append
2、insert在指定位置插入字符串


注意:前面需要定义result: bool result;(有警告无关)

compare字符串对比:
两个字符串完全相同返回0;其他返回1或者负数。

to Int转换函数

Qt中的容器:
1、定义:存放某一类内容的空间
2、类似与C语言中的数组
c语言中数组的定义:int a[10];
Qt中不需要指明数组的长度
3、同样数据类型的集合

分类:
QList:QList<数据类型>,变量名;

疑问:16进制的打印

1、C语言中16进制数的打印:printf("%x,数值");x表示hex
2、C++中:cout<<hex<<变量名<<endl;
3、Qt中:qDebug<<变量名;


QMap(二维数组)
1、C语言中定义:char ch[m] [n];
2、QMap:QMap<类型1><类型2> 变量名;
本质:类型1称之为key:键值
类型2称之为值:数据
QMap<key><value>变量名;或者:QMap<key,value>变量名;

QHash
区别在语言QHash地址不连续
地址连续方便访问下一个空间,不连续则不容易找到下一个空间

四、Qt中的控件、控件中的布局

使用

1、纯靠函数接口也可以写出窗口
优点:最终的工程比较小;有些不必要的函数会进行屏蔽
缺点:比较难不适合初学者

2、Qt图形化编程
可以通过鼠标点一点进行UI绘制
优点:简单,可以跨平台放到板子上
缺点:最终的程序比较大
1》、

X从左上方开始,精确控制大小


定时器的创建: 

QTimer *mytimer = new QTimer(parent);//

槽函数的定义
void update_time(void);//槽函数的定义
1、使用UI控件的槽函数:槽函数的触发需要一个条件,这个条件我们称之为信号
2、自己定义槽函数

UI控件中显示中文乱码

警告框:

QT下的文件操作:
文件就是一个文本文档,存入不同的内容,以不同的后缀命名:
.txt文本文档
.doc 
.bin二进制文件
.hex16进制文件
常用的以.txt为例进行操作:打开,关闭,读,写
文件操作在Qt中有专门的类来提供接口
QFile类
初始化文件(定位文件):
如何找路径:打开一个文件夹,找到一个想生成文件的路径(C盘不行);


打开文件:1、打开方式
写文件
读文件

网络编程:
TCP一对一通信:需要知道对方的ip和端口:
         ip是在当前网络下的唯一身份证明,例如:学号后几位,前面到班级都相同,但是这个唯一是相对于在自己的班级。
         端口号是区分在自身ip下的不同的联网设备,例如手机是一个联网设备,通过网络可以获取信息,但是,每个app是如何知道这个消息是发送给自己的,所以就通过IP和端口共用确定的消息

UDP中的一对多
广播:给所有在当前网络下的设备发送消息
组播:给部分在当前网络下的设备发送消息

我们对UDP中
客户端:在我们的网络中主要是接受->接受来自服务器的消息
核心:在于如何获取服务器的新消息,因为我们在一个局域网中,所以可以忽略如何获取服务器,只需要绑定端口号
服务器:主要是发送作用,将消息通过广播发送出去(以函数的形式发送)
核心:在于如何广播,通过UDP编程类中的成员完成广播

QT中默认不支持网络编程

UDP
1、将消息输出到UI控件->Label中
2、完成发送端的程序
3、完成自己和自己进行收发
4、完成发送端和接收端进行收发
TCP
TCP协议:三次握手,四次挥手
1、点对点通信:一对一进行稳定的链接,也可以实现比较类似的一对多,一个一个不断发送->相对UDP比较慢
2、可靠连接:相对UDP来说,UDP对数据的发送方式(通过数据包,需要每次确定对方的IP和端口号,并不知道对方是否在线,无论对方是否在线都可以发送成功)
但是TCP必须要求双方都在线,连接过程中没有断开
广域网TCP,局域网UDP
三次握手->建立连接:(接电话)
1、客户端->服务器
SYN=1,seq=x
2、服务器->客户端
ACK=1,ack=x+1,SYN=1,seq=y
3、客户端->服务器
ACK=1,ack=y+1.SYN=1
四次挥手->断开连接:(等待挂电话)
1、客户端->服务器
2、服务器->客户端
3、服务器->客户端

4、客户端->服务器
 

五、产品发布

1、目的:

获取exe可执行文件,这个文件可以在任何电脑上运行(否则只能在含有QT的电脑上运行)
 

2、产品发布方式

1、一个压缩包的形式
QT上自带的有,通过解压缩就能运行
1>打开Qt工程
2>在Qt终端将Debug改为Realease
3>运行后将生成一个Release并将其放到Qtrelease
4>通过终端运行

5>之后返回到该文件目录下可直接点击exe文件运行,也可以发给其他用户(只发送exe文件)直接双击运行,不用安装Qt环境
2、一个exe文件,通过FlcMu
3、一个exe文件,有安装步骤
注:2和3都需要借助第三方工具

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值