深入介绍信号和槽

  信号和槽机制是Qt编程的基础,它可以让应用程序编程人员把这些互不了解的对象绑定在一起。漕河普通的c++成员函数几乎是一样的—可以是虚函数,可以被重载,可以是公有的、保护的或者私有的。并且也可以被其他c++成员函数直接调用;还有,他们的参数可以任意类型。唯一不同的是:草还有和信号连接在一起,在这种情况下,每当发射这个信号时候,就会自动调用这个槽。

  connect()语句:

  connect(sender,SIGNAL(signal),receiver,SLOT(slot));

一个信号可以连接多个槽

connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));

connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateStatusBarIndicator(int)));

在发射这个信号的时候,会不确定的顺序一个接一个地调用这些槽。

多个信号可以连接个槽

connect(lcd,SIGNAL(overflow()),this,SLOT(handleMathByZero()));

connect(calculator,SIGNAL(divisionByZero()),this,SLOT(handleMathError()));

一个信号可以与两外一个信号相连接

connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SLOT(updateRecord(const QString &));

当发射第一个信号时,也会发射第二个信号。除此之外,信号与信号之间的连接和信号与槽之间的连接是难以区分的。

连接可以被移除

disconnect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError()));

 

posted @ 2016-05-28 16:54  pingfandfy  阅读(692)  评论(0编辑  收藏  举报