感兴趣的同学可以下载阅读
英文一直不好,有错误的地方请多指正;
Chapter 1 The Qt Way of C++
1.信号、槽和元对象的定义:
Signal:是被发出而不是被执行的,这一点和现实生活中的信号很相似。程序员只需要在类中声明信号的原型,而不必实现它。记住信号只是被发出的就行了。
slot : 是信号发出后执行的函数。一个信号可以和多个slot连接。
Meta-Object:元对象中,元是本来自己的意思。这里是指元对象是描述对象的一个对象。Q_OBJECT属于元对象,当然本身包括了Signal和slot的定义。
2.信号、槽到底是如何实现的:
总体上来说是用函数指针来实现的。当发送一个信号的时候(其实信号对应的函数是由qt自己实现的),其实的调用了moc实现的函数(关于信号),这个函数使用元对象将执行连接的slot函数。
元对象包含一个函数指针,包含了一个列表使得信号的名字和参数与slot一一对应。当connect函数调用的时候,就将slot函数加入到信号列表中。如果参数匹配成功就立即执行该slot函数。
3.对象继承至QObject,在构造函数中需要创建QObject *parent = 0 并赋值为0,当对象被删除的时候,该类对象自动删除。
4.要显示调试信息,需要包含QDebug
并使用qDebug()