Qt - connect的多种写法
转载自:https://blog.csdn.net/liukang325
加:在main函数中写一个定时器,并启动
1 QTimer timer; 2 QObject::connect(&timer, &QTimer::timeout, [&]() { 3 qDebug() << "Time COOKOO *** write: " << QDateTime::currentDateTime().toString("ss.zzz"); //秒.毫秒 4 }); 5 timer.start(500);
1、最基本的,4个参数
1 //阻塞 2 QEventLoop loop; 3 QObject::connect(this, SIGNAL(getRtmpCodeFinished()), &loop, SLOT(quit())); 4 loop.exec();
1 QPointer<QAction> sysTrayReplayBuffer; 2 ... 3 connect(sysTrayReplayBuffer.data(), &QAction::triggered, this, &HBasic::ReplayBufferClicked);
2、lamda表达式
注:
[a,&b] a变量以值的方式呗捕获,b以引用的方式被捕获;
[this] 以值的方式捕获 this 指针;
[&] 以引用的方式捕获所有的外部自动变量(包括this);
[=] 以值的方式捕获所有的外部自动变量(包括this);
[] 不捕获外部的任何变量。
1 HLiveSettings liveSetting(this); 2 auto getRtmpCodeSlots = [&](QString rtmpStr) { 3 QDBG << rtmpStr; 4 ... 5 }; 6 connect(&liveSetting, &HLiveSettings::getRtmpCode, getRtmpCodeSlots);
1 auto clickedSlots = [this]() { 2 ... 3 }; 4 connect(ui->pushbutton, &QPushButton::clicked, clickedSlots);
1 m_downLoadManagerForImage = new DownLoadManager(this); 2 connect(m_downLoadManagerForImage, &DownLoadManager::FileDownloadFinished, [=]() 3 { 4 QDBG << "FileDownloadFinished!"; 5 addPendantSource("test"); 6 });
博客园文作者:Citrusliu
博文地址:https://www.cnblogs.com/citrus
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性