QT学习2

8.自定义信号和槽
8.1 自定义信号
8.1.1返回void,需要声明,不需要实现;可以有参数,可以重载
8.1.2写到signal下
8.2自定义槽
8.2.1返回void,需要声明,需要实现;可以有参数,可以重载
8.2.2写到public slot下
8.3 触发自定义信号
8.3.1emit自定义信号
9.当自定义信号和槽出现重载
9.1需要利用函数指针 明确指向函数的地址
9.2例void(Teacher::teacherSignal)(QString) = &Teacher::hungry;
9.3Qstring转成char

9.3.1QString ->char* 先转成QByteArray,使用(.toUtf8()),再转成char*,使用.data()
9.4信号可以连接信号
9.5断开信号 disconnect
9.6拓展
9.6.1.信号可以连接信号
9.6.2.一个信号可以连接多个槽函数
9.6.3.多个信号可以连接一个槽函数
9.6.4.信号和槽函数的参数类型必须一一对应
9.6.5.信号和槽函数参数的个数可以不一致,信号的参数个数可以多余槽函数参数的个数
9.7利用QT4版本进行信号和槽的连接
QT4 底层将SIGNAL(“hungry()”),SLOT(“treat()”),转成字符串,不进行类型比较
//connect(th,SIGNAL(hungry()),st,SLOT(treat()));
QT4版本的优点,参数直观;缺点,不做类型检测
QT5以上支持4版本的写法,反之不行
10Lamda表达式(用于定义并创建匿名函数)
10.1[]标志符 匿名函数
10.2=用于值传递,&用于引用传递
10.3()参数
10.4{}实现体
10.5mutable修饰值传递的变量,可以修改拷贝出的数据,改变不了本体
10.6返回值->int{},即表示返回int类型的数据

发布了13 篇原创文章 · 获赞 2 · 访问量 4302

猜你喜欢

转载自blog.csdn.net/qq_41644888/article/details/102711042