Qt设置代码执行顺序

void view_Ftcy_Test::Ui_Close()
{
    connect(ui->pb_close_test, &QPushButton::clicked, this, [this]()
        {
            m_CtrProtocol.End_Test();
            QTimer::singleShot(0, this, [this]()
                {
                    ctrl_Sp_Manager::Get_Inst().Close_Sp();
                    this->close();
                });
        });
}

QTimer::singleShot 是 Qt 框架中的一个非阻塞定时器函数,它允许你在一个指定的延迟之后执行一个特定的操作。与 QTimer 的其它方法不同,singleShot 不会持续重复触发,而是仅仅在经过设定的延迟时间后触发一次指定的动作。

QTimer::singleShot(int msec, QObject *obj, const QObject::Slot &slot) 函数的参数说明如下:

  • msec: 延迟时间,以毫秒为单位。
  • obj: 接收信号的对象,通常是指向你想要连接槽的类的实例的指针。
  • slot: 将要被调用的槽函数,可以是一个直接的函数指针或者一个lambda表达式。

使用 QTimer::singleShot 的典型场景包括:

  • 在用户界面中创建一个短暂的延迟,例如,在显示一个消息框之后自动关闭它。
  • 将多个操作分离开来,以确保它们按顺序执行,即使前一个操作可能需要一些异步处理时间。
  • 避免长时间运行的操作阻塞用户界面,通过在操作完成后发布一个单次定时器来更新用户界面。
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值