Skip to content

Latest commit

 

History

History
21 lines (15 loc) · 888 Bytes

18、信号槽的四种写法和五种连接方式?.md

File metadata and controls

21 lines (15 loc) · 888 Bytes

18、信号槽的四种写法和五种连接方式?

connect(信号发出者,信号,信号接收者,槽,连接方式(隐藏默认自动连接))//五个参数

四种写法:

1.用宏: connect(this,SIGNAL(clicked()),this,SLOT(colse())); //连接方式(隐藏默认自动连接))

2.用函数指针: connect(this,&mainwindow::my_signal,this,&mainwindow::my_slot);

3.用重载函数指针Qoverload connect(this,Qoverload<参数>::of(&mainwindow::my_signal),this,Qoverload<参数>::of(&mainwindow::my_slot));

4.lambda表达式(匿名函数) 匿名函数代替槽 connect(this,&mainwindow::my_signal,this,[=]{qDebug()<<100;}); 连接方式:自动连接(默认连接方式) 直接连接(用于单线程,自动匹配) 队列(用于多线程也可用于单线程,自动匹配) 阻塞队列(跨线程,多线程) 唯一连接(跨线程,多线程)