signals and slots in depth
槽与普通的c++成员函数几乎一样.它们可以是virtual,overloaded,public,protected,private,并且可以被其他c++成语函数直接调用.区别是槽可以被信号连接,信号被发送将它自动调用. 【程序编程相关:良好编码习惯】
信号与槽机制是qt编程的基础.它使应用程序员能够在对象之间互相不知道任何联系的情况下把这些对象帮定在一起.我们已经连接了一些信号与槽,声明了我们自己的信号与槽,执行自己的槽,发出自己的信号.让我们花点时间深入点看这个机制. 【推荐阅读:利用VB解决华容道问题的源代码】
connect(sender, signal(signal), receiver, slot(slot)); 【扩展信息:《LINUX与UNIX_Shell编程指】
connect()声明如下:
sender与receiver是指向qobjects的指针,signal与slot是没有参数名的函数signatures(签名).signal()与slot()宏将转换它们的参数成为一个字符串.
刚才的例子中我们总是连接不同的信号到不同槽,有更多的可能去探究:
1 . 一个信号可以连接很多槽:
connect(slider, signal(valuechanged(int)),spinbox, slot(setvalue(int)));
connect(slider, signal(valuechanged(int)),this, slot(updatestatusbarindicator(int)));... 下一页