应用场景

若需要在程序运行期间根据控件数动态创建控件,且创建的每一个控件在某一个信号发生时会触发相同的槽函数。

问题描述

上述所导致的问题是在触发其中一个控件的时候,其它的控件也会响应该槽函数,出现了一对多的绑定。

示例

class MultiWindow
{public:MultiWindow(int id);void createPlayWindow(int id);QGraphicsRectItem *item;CustomWidget      *widget;ProxyWidget       *proxy;
};for(int i = 0; i < WIN_NUM; ++i){m_multiWin = new MultiWindow(i);m_listWindow.push_back(m_multiWin);connect(this,&chunzhongForm::signalUrlName,m_multiWin->widget,&CustomWidget::slot_urlNameValue);connect(this,&chunzhongForm::signalCloseWidgetThread,m_multiWin->widget,&CustomWidget::slot_closeWidgetThread);}

上述代码只简单的展示了一部分,当该类chunzhongForm的信号触发时,若信号中没有指明具体的窗口,则所有的CustomWidget类的槽函数都会响应。究其原因是信号发射时没有指定具体哪一个窗口来接收信号。

解决方法

在发射信号时,传入要接收的窗口的id,然后只让此id的窗口响应该信号。

void signalUrlName(int id,stuInterDisNeed &urlName);//信号void CustomWidget::slot_urlNameValue(int id,stuInterDisNeed &urlName)//槽函数
{if(id == m_id){.......}
}//在其类的构造函数中传入窗口的id,其中m_id是该窗口的id

以上描述仅用于解决同类问题的参考。

qt解决循环创建的控件,每个都绑定相同的槽函数时出现的一对多响应问题相关推荐

  1. [QT_015]Qt学习之基于条目控件的自定义特性(拖拽+右键菜单+样式)

    本文转自:<Qt编程指南>        作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 本节介绍基于条目控件的定制特性,首先介绍条目的拖拽,列表控件. ...

  2. qt 给容器中的控件添加信号槽

    之前做的将动态创建的控件,放到容器中,从而可以使用数组访问,现在记一下怎样给它们设置事件. 1.实现思路: 比如我创建了10个按钮,每创建一个,我就构建一个信号槽的连接.由于我不能构建太多的槽函数,所 ...

  3. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

  4. 【079】用代码来创建 Android 控件

    一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...

  5. [原]动态创建Web控件制做计算器

    最近参加了Web基础开发的培训,收获不少,做了一个练习,在后台动态创建控件制作了一个简单功能的计算器.程序中控件创建好以后,往往不能放在想要的位置,前台的布局非常麻烦,我用Table.TableRow ...

  6. 利用css对shiny页面优化及利用htmlwidgets包创建HTML控件

    内容来源:2017年5月20日,乐逗游戏高级数据分析师在"第十届中国R会议软件工具专场"进行<HTTPS最佳安全实践>演讲分享.IT大咖说作为独家视频合作方,经主办方和 ...

  7. firefox扩展开发(二):用XUL创建窗口控件

    firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...

  8. Qt QWidget实现消息提示控件TipsWidget

    前言 用Qt实现一个消息提示控件,控件宽度会根据显示的内容多少来动态伸展,控件显示三秒钟过后会自动渐变透明度然后最终消失,这有点类似于Android的Toast控件,都是用于消息短暂提示. 源码 头文 ...

  9. Qt界面开发(各种控件以及图表)

    Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...

最新文章

  1. Kylin集群部署和cube使用
  2. android webview 更新,Android WebView缓存没更新解决方案
  3. ecs 对比 本地服务器_ECS训练营Day03_SLB负载均衡实践 - 魔笔钨丝浣
  4. k8s集群dns问题解决办法
  5. 前端学习(3316):connect
  6. php 弹出保存对话框,如何在不将页面留在PHP中的情况下强制保存为对话框?
  7. python小老鼠编程_Python小老鼠编程,Python入门到精通(非常详细)
  8. CF Educational Codeforces Round 57划水记
  9. php无限级回复页面如何嵌套,php无限级评论嵌套实现代码
  10. 怎么从转移特性曲线上看dibl_国民技术面试20200910
  11. centos6 yum 阿里源 配置
  12. Arduino 水质检测仪(浊度、TDS、温度、电导率、吸光度、硬度)带18b20温度补偿。
  13. getElementById(‘divid‘).innerHTML赋值【js基础】
  14. 路由算法(Dijkstra, Bellman-Ford算法)
  15. 此计算机到未能识别网络连接,Win10未识别的网络无法连接到internet如何解决?操作方法...
  16. 高职单招计算机基础知识题,高职单招计算机基础练习题
  17. WPF DataGridTextColumn Visibility
  18. 免费的python编辑器_免的解释|免的意思|汉典“免”字的基本解释
  19. 自动驾驶地图中的深度学习
  20. Mysql字段类型转换

热门文章

  1. 阿里云边缘云ENS再升级 四大场景应用加速产业数字化落地
  2. 借助钉钉宜搭,奶茶店开始用黑科技管理门店了
  3. 搞定客户端证书错误,看这篇就够了
  4. 蚂蚁金服自研分布式关系数据库OceanBase上线阿里云
  5. 2019双11,支付宝有哪些“秘密武器”?
  6. 首次公开!《阿里计算机视觉技术精选》揭秘前沿落地案例
  7. 函数计算搭建 Serverless Web 应用(一)- HTTP 触发器
  8. AI 如何推动双碳目标达成?施耐德电气这么说
  9. 无法恢复,欧洲云服务巨头数据中心起火
  10. 面试编程岗,期望40K,为什么老板给我翻倍?