一、信号和槽
信号和槽机制是QT编程的基础,它们和普通的C++函数几乎是一样的,可以是虚函数,可以被重载,可以是保护、私有或共有的。
信号和槽通过connect()语句连接在一个,形式如下:
connect(sender,SIGNAL(signal),receiver,SLOT(slot));
这里sender和receiver是指向QObject的指针,signal和slot是函数名。每当发射信号时,就会自动的调用所连接的槽。
一个信号可以连接多个槽,这样当信号发射时就会以不定顺序的一个一个执行槽。
多个信号也可以连接一个槽,这样任何一个信号发射时槽都会被执行。
可以通过disconnect ( const QObject * sender, const char * signal, const QObject * receiver, const char *method ) 断开信号与槽间的联系。
信号通过emit发射。
信号与槽连接成功必须要求他们的参数具有相同的顺序和相同的类型。但有个例外就是当信号的参数比槽参数多是,多余的参数将会被简单的忽略。
二、QT的元对象系统
QT的元对象系统建立在下面3个的基础上
元对象系统是这样工作的:
所有的工作都由qmake,moc,QObject自动处理。
联系客服