QT信号和槽
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性。 要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。 信号和槽能携带任意数量和任意类型的参数。我们 可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接 , ( 当这个信号被发射时,这些槽将会一个接一个地 执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。 )甚至于将一个信号与另外一个信号相连接,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。 信号(Signals) 信号只需要在头文件中做声明,不需要在cpp中实现。放在QT自定义关键字signals下,在此之前一定要加上Q_OBJECT宏! 在编程中,一般使用的是控件内部定义好的信号。如:QTreeView类下的 Signals: 1 Q_SIGNALS: 2 void pressed(const QModelIndex &index); 3 void clicked(const QModelIndex &index); 4 void doubleClicked(const QModelIndex &index);