自定义定义一个信号
signals:
void 信号名(参数);
void click(QString);
注意:signals前面不能有访问修饰符
槽的实现:
关键字:slots,可以被访问修饰符修饰
private slots:
void clickfinished(QString);
信号和槽的链接:
connect(sender,SIGNAL(signal),receiver,SLOT(slot));
sender是发送信号的对象
SIGNAL:signal:要发送的信号。
receiver:接收信号的对象。
SLOTS:定义的槽。接收信号的。
例子:
假设有个button对象m_button,this表示当前类的对象
connect( m_button , SIGNAL(click(click(QString)),this,SLOT(clickfinished(QString)))
1.一个信号可以对应多个槽,槽的执行顺序不确定。
2.多个信号可以对应一个槽,任何一个信号都会调用这个槽
3.一个信号可以与另一个信号连接,当第一个信号发射时,第二个信号也会发射
connect( lineedit , SIGNAL( textedchanged() ) ,this , SIGNAL( update() ) );
3.链接可以被移除
注意:要把信号成功链接到槽,信号和槽必须有相同的参数类型和顺序,当信号参数比槽多时会被忽略