选择基类有三个选项
- QMainWindow #带菜单栏的,主要是在PC下使用
- QWidget # 空白窗口
- QDialog # 对话框
Qt4与Qt5信号与槽机制的区别
Qt4: QObject::connect(button,SIGNAL(clicked()),this,SLOT(quit()));
Qt5: connect(button,&QPushButton::clicked,this,&QWidget::close);
自定义槽函数
- 在Qt4里面,自定义槽函数只能放在
public slots
下面 - 在Qt5里面,没有那么严格,普通的成员函数或者全局函数,静态函数都可以作为槽函数。
- 在Qt5里面,槽函数还可以是lambda匿名函数表达式
connect(button,&QPushButton::clicked,
[]()
{
}
)
[]的作用是把外部变量传进来
[b4]()
{
}
[=]: 把外部所有局部变量,类中所有成员通过值传递方式,默认为只读
[&]: 把外部所有局部变量,通过址传递
[this]: 类中所有成员以值传递方式
Qt头文件没有.h
头文件和类名一样
Qt项目文件
.pro
# 模块
QT += core gui
# 高于4版本,添加QT+=widgets,为了兼容Qt4
greaterThan(QT_MAJOR_VERSION,4):QT +=widgets
# 应用程序的名字
TARGET= mike
# 指定makefile的类型,app|lib
TEMPLATE = app
# 源文件
SOURCE += main.cpp\
自定义槽,普通函数的用法
Qt5: 任意的成员函数,普通全局函数,静态函数
槽函数需要和信号一致(参数,返回值)
由于信号都是没有返回值的,所以,槽函数一定没有返回值
信号的参数可以多于槽,但槽的参数不能多于信号的参数
注意:引用lambda表达式时,需要在项目文件中末尾添加CONFIG += C++11