开发者社区> 问答> 正文

迷惑?Qt槽函数不是立即被执行的吗?

我的代码如下:

MyDialog::MyDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MyDialog)
{
ui->setupUi(this);
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(Disapper()));
timer->start(2400);
sleep(1);
qDebug()<<"hh";
}
void MyDialog::Disapper()
{
qDebug()<<"we";
reject();
}

输出台:

hh 
we
MyDialog是一个对话框,在外面被以模态exec()调用,2.4s后自动关闭,为什么槽函数没有立即执行,而是先执行输出hh才输出we?

展开
收起
杨冬芳 2016-07-13 18:17:34 2751 0
1 条回答
写回答
取消 提交回答
  • IT从业

    并非如此,是否直接执行取决于connect的最后一个参数。你的程序设定定时器过期后才会显示we,那么输出当然就是这样

    2019-07-17 19:55:59
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载