尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【转载】Qt 多次connect的坑

【转载】Qt 多次connect的坑
📅 发布时间:2026/6/20 3:50:44

1、坑的现象

有时项目中一个信号发出,对应连接的槽函数会执行多次,普通刷新界面都不会有问题,但是特别频繁的就会影响性能,如果是改变数据的,更有甚者会异常崩溃

2、遇坑的原因

qt中同一实例的同一信号和槽,connect多次,当信号发出时,槽函数会被调用多次

3、例子

复制代码
 1 #include "ui_widget.h"
 2 #include "QDebug"
 3 
 4 Widget::Widget(QWidget *parent)
 5     : QWidget(parent)
 6     , ui(new Ui::Widget)
 7 {
 8     ui->setupUi(this);
 9 
10     connect(this, &Widget::sigTest, this, &Widget::sltTest);
11     connect(this, &Widget::sigTest, this, &Widget::sltTest);
12 }
13 
14 Widget::~Widget()
15 {
16     delete ui;
17 }
18 void Widget::sltTest()
19 {
20     qDebug() << "test";
21 }
22 
23 void Widget::on_pushButton_clicked()
24 {
25     emit sigTest();//鼠标点击按钮后发出信号
26 }
27 //输出结果:
28 test
29 
30 test
复制代码

4、避坑

disconnect
每次槽函数使用完后,调用disconnect将信号与槽的绑定解除

connect连接方式选择
connect的第五个参数选择Qt::UniqueConnection , 防止重复连接, 如果当前信号和槽已经连接过了,就不再连接了

connect(this, &Widget::sigTest, this, &Widget::sltTest, Qt::UniqueConnection);

 

转载:https://www.cnblogs.com/ybqjymy/p/16834776.html

相关新闻

  • 2025年检查井定制厂家十大推荐,雨水检查井与预制装配式检查
  • 大模型高效微调(Finetune)实战教程
  • 【转载】Qt QCustomPlot 使用整理

最新新闻

  • S12S BDM硬件握手协议:ACK脉冲原理与嵌入式调试实战
  • 前向车辆最小转弯约束下的两点间最短路径生成工具(MATLAB实现+图形可视化)
  • 2026年即时零售无人仓加盟推荐:无人外卖仓/外卖闪电仓/前置仓无人仓/即时零售运营加盟全解析 - 海棠依旧大
  • 2026年东莞全域保洁服务公司推荐:开荒清洁/外墙清洗/石材养护/甲醛治理/油烟管道清洁/日常驻场保洁 - 海棠依旧大
  • CVE-2025-55182本地复现:路径遍历漏洞原理与实战利用详解
  • 麻省理工研究人员打造 Fractal 操作系统,获苹果 M1 芯片新发现

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号