1.介绍.pro文件
QT += core gui //QT包含的模块,core和gui,可以在这里添加其他模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets //greaterthan(大于)
TARGET = practice //目标,生成的.exe的名称
TEMPLATE = app //模板 应用程序模板 Application
SOURCES += main.cpp\ //源文件
mywidget.cpp
HEADERS += mywidget.h //头文件
QT5版本以上QT widget和GUI是同一模块,后来才分成了两个模块。
2.介绍头文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include //包含头文件 Qwidget 窗口类
class myWidget : public QWidget //继承
{
Q_OBJECT //宏 允许类中使用信号和槽的机制
public:
myWidget(QWidget *parent = 0); //构造函数(有参)
~myWidget();
};
#endif // MYWIDGET_H
3.书写规则
类名 首字母大写 单词和单词之间首字母大写
函数名 变量名称,首字母小写 ,单词和单词之间首字母大写
4.快捷键
注释 ctrl + /
运行 ctrl + r
编译 ctrl + b
查找 ctrl + f
整体移动 ctrl + shift + 上键或者下键
帮助文档 F1
自动对齐 ctrl + i;
同名之间的.h和.cpp之间的切换 F4
打开帮助文档
1.F1
2.左侧按键
3.在文件中打开 路径:/QT/QT5.7.0/5.7/mingw49_32/bin
5.按钮
//创建一个按钮
QPushButton *btn = new QPushButton;
btn->show();//以顶层方式弹出窗口控件
//让btn对象 依赖在 mywidget窗口中
btn->setParent(this);
//显示文本
btn->setText("第一个按钮");
//创建第二个按钮 按照控件大小创建窗口
QPushButton * btn2 = new QPushButton("第二个按钮",this)
//移动btn2
btn2->move(100,100);
//重新指定按钮大小
btn2->resize(20,20);
//重置固定窗口大小
resize(600,400);
//设置窗口大小
setFixedSize(600,400);
//设置窗口标题
setWindowTitle(“第一个窗口”);
二.对象树
1.当创建的对象在堆区时(关键字new),如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象放入到对象树中
2.一定层度上简化了内存回收机制
C++双冒号::的作用
1、
作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分
如:A,B表示两个类,在A,B中都有成员member。那么
A::member就表示类A中的成员member
B::member就表示类B中的成员member
2、
全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:
char zhou; //全局变量
void sleep()
{
char zhou; //局部变量
char(局部变量) = char(局部变量) *char(局部变量) ;
::char(全局变量) =::char(全局变量) *char(局部变量);
}
3、
::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如
class CA {
public:
int ca_var;
int add(int a, int b);
int add(int a);
};
//那么在实现这个函数时,必须这样书写:
int CA::add(int a, int b)
{
return a + b;
}
//另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示,比如:
int CA::add(int a)
{
return a + ::ca_var;
}
//表示当前类实例中的变量ca_var。
QT的窗口坐标体系
信号和槽
Connect(信号的发送者,发送的具体信号,信号的接受者,信号的处理(槽))
信号槽的优点:松散耦合(信号发送端 和 接收端 本身是没有关联的,通过connect连接 将两端 耦合在一起)
^