QT connect()连接函数
函数重载:
连接函数后多种重载方法,常用的有:
函数4个参数:发射信号的对象,发射的信号,接受信号的对象,要执行的槽;
//按键单击信号连接到按键槽函数
//方法1:
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(on_pushButton_clicked()));
//方法2:
connect(ui->pushButton,&QPushButton::clicked,this,&Widget::on_pushButton_clicked);
1:首先要链接的两个类必须继承于QObject,同时添加Q_OBJECT。
2:在QT中的QObject ::连接中填写的信号和槽函数,一定要填写参数类型。
因为类中的函数可以,也就是,重载函数名一样,参数不一样,如果的QObject ::连接中的函数没有参数类型,则无法正确连接
3:QObject :: connect中的signal和slot函数一定要有参数类型,但是,不可以有参数:
指定信号和方法时,必须使用SIGNAL()和SLOT()宏,例如:
QLabel *label = new QLabel;
QScrollBar *scrollBar = new QScrollBar;
QObject::connect(scrollBar, SIGNAL(valueChanged(int)), label, SLOT(setNum(int)));
此示例确保标签始终显示当前滚动条值。请注意,signal和slots参数不能包含任何变量名,只能包含类型。例如,以下不起作用并返回false:
// WRONG -- 必须有参数类型,但是不能有变量名
QObject::connect(scrollBar, SIGNAL(valueChanged(int value)), label, SLOT(setNum(int value)));