深入介绍信号和槽

Posted pingfandfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入介绍信号和槽相关的知识,希望对你有一定的参考价值。

  信号和槽机制是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()));

 

以上是关于深入介绍信号和槽的主要内容,如果未能解决你的问题,请参考以下文章

Qt 6.x中的信号和槽介绍及示例

qt信号和槽机制的问题

深入了解Qt之元signal和slot

QT学习_常用类及信号和槽

QT信号和槽

初见QT---信号和槽