下面的前7个可以先不看,直接从8开始看
1. 创建Qt程序
- 一个Qt程序的组成部分:应用程序类,窗口类
- 应用程序类个数:有且只有一个QApplication a;
- 如何查看类对应的模块:光标移动到类上,F1
- qmake+=模块的名字
2. 第一个Qt程序
- 在窗口中添加按钮类名:QPushButton
- 设置按钮显示的内容:setText
- 移动按钮位置:move
- 按钮设置父窗口:setParent
- 设置窗口的大小:resize() resizeFixed()
3. Qt的坐标体系:
- 坐标原点:左上角
- x轴延伸的方向:向右递增
- y轴延伸的方向:向下递增
4. Qt内存回收机制
满足什么条件的类不需要用户手动释放内存?
- 从QObject类直接或间接派生
- 给直接或间接派生出的类,指定父对象
5.信号和槽
- 格式:connect(信号发出者对象(指针),&className::clicked,信号接收者对象(指针),&classB:slot);
标准信号槽的使用:
- 自定义槽函数
- void
- 可以重载
- 需要跟信号对象,个数<=信号的参数个数
- 自定义信号
- void
- 可以重载
- 需要使用-个关键字声明:signals
- 不需要函数定义
6. 拓展:
- 信号可以连接信号(参数的对应)
- 一个信号可连接多个槽函数
- 多个信号可连接同一个槽函数
- 槽函数可以使用1 ambda表达式
7. lambda表达式
=
{
}
在.pro添加一次CONFIG+=c++11
8. 下面三种均可以作为顶层窗口
- QWidget: 所有窗口类的父类。
- QDialog :顶层窗口(第一个打开的窗口,对话框窗口) ,只有一个关闭按钮。其他的窗口有最大化最小化
- QMainWindow:菜单栏,工具栏,状态栏
控件:窗口类(都是从QWidget派生的)
#include "mywidget.h" //添加的窗口类,//在qt中类名和头文件名相同
#include <QApplication> //应用程序类:比如创建好的窗口的拖动,放大缩小等int main(int argc, char *argv[])
{//应用程序类,在每一个qt程序中有且仅有一个QApplication a(argc, argv);//窗口类,创建出来之后默认不显示MyWidget w; //如果要对 窗口操作,就必须对 w进行操作//显示窗口w.show();//(里面就是一个死循环,收到某一个信号就会结束(跳出循环),结束对窗口的监听)return a.exec();//走到后台进行了一个消息
}
MyWidget w; //如果要对 下面的窗口(顶层窗口)操作,就必须对 w进行操作
当用到什么模块,就加入到Firstproject.pro的文件中,如图使用到了core,gui就加进去
如何知道当前类要用到哪些模块?
按两次Esc即可退出。
关于Firstproject.pro的介绍
#qt程序用到的模块
QT += core gui
#兼容以前的版本,5.0以上可以不用加,如果是5.0以下没有Qwidget
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets#生成的应用程序的名字
TARGET = Firstproject
#指定生成的makefile的类型lib
TEMPLATE = appCONFIG += c++11
# 源文件 \换行就加\
SOURCES += \main.cpp \mywidget.cppHEADERS += \mywidget.h