QT上位机学习(一)

一、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();//显示这个新建的界面
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值