现在的位置: 首页 > 综合 > 正文

我对Qt中信号与槽的误解!!

2013年08月20日 ⁄ 综合 ⁄ 共 467字 ⁄ 字号 评论关闭

众所周知 qt中一个信号可以连接两个槽, 今天想体验一下,写了个简单的UI 文件,包含一个简单的lineEdit 、一个pushButton  写了两个connect 如下:

connect(pushButton , SIGNAL(clicked()) , this, SLOTS(serverOpen()));
connect(pushButton , SIGNAL(clicked()) , this, SLOTS(serverClose()));

serverOpen()
{
	if(!flag)
{
    ....//pushButton的名字改为打开
   flag = true;
    .....
}
}

serverClose()
{
if(flag)
{
    ....//pushButton的名字改为关闭
   flag = false;
    .....
}

}

原本以为 点击一次button 上面的两个槽中只有一个 if 语句执行 , 但是执行的时候两个函数都执行了 , 是一前一后执行,后来查资料发现信号与槽的机制:

当一个信号连接多个槽的时候, 在发射信号的时候,会以不确定的顺序一个接一个的调用这些槽

最后我索性把两个if都放到一个槽里面了

抱歉!评论已关闭.