信号与槽的注意细节

信号与槽是qt的关键技术,它有一些规则需要注意,笔者在这里将其总结:

1、一个信号可以连接多个槽

connect(spinNum,SIGNAL(valueChanged(int)),this,SLOT(addFun(int)));
connect(spinNum,SIGNAL(valueChanged(int)),this,SLOT(updateStatus(int)));

当一个信号与多个槽函数关联时,按照建立连接顺序依次执行

2、多个信号可以连接同一个槽

connect(ui->rBtnRed,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
connect(ui->rBtnBlue,SIGNAL(clicked()),this,SLOT(setTextFontColor()));
connect(ui->rBtnBlack,SIGNAL(clicked()),this,SLOT(setTextFontColor()));


3、一个信号可以连接另外一个信号

connect(spinNum,SIGNAL(valueChanged(int)),this,SIGNAL(refreshInfo(int)));

4、信号与槽的参数个数和类型需要一致

5、在使用信号与槽的类中,必须在类的定义中加入宏Q_OBJECT

6、当一个信号被发射时,与其关联的槽函数通常被立即执行,就像正常调用一个函数一样,只有当信号关联的所有槽函数执行完毕后,才会执行发射信号处后面的代码

你可能感兴趣的:(QT,c++)