qt解决循环创建的控件,每个都绑定相同的槽函数时出现的一对多响应问题
应用场景
若需要在程序运行期间根据控件数动态创建控件,且创建的每一个控件在某一个信号发生时会触发相同的槽函数。
问题描述
上述所导致的问题是在触发其中一个控件的时候,其它的控件也会响应该槽函数,出现了一对多的绑定。
示例
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解决循环创建的控件,每个都绑定相同的槽函数时出现的一对多响应问题相关推荐
- [QT_015]Qt学习之基于条目控件的自定义特性(拖拽+右键菜单+样式)
本文转自:<Qt编程指南> 作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 本节介绍基于条目控件的定制特性,首先介绍条目的拖拽,列表控件. ...
- qt 给容器中的控件添加信号槽
之前做的将动态创建的控件,放到容器中,从而可以使用数组访问,现在记一下怎样给它们设置事件. 1.实现思路: 比如我创建了10个按钮,每创建一个,我就构建一个信号槽的连接.由于我不能构建太多的槽函数,所 ...
- c#,c++,qt中多线程访问UI控件线程的问题汇总
c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...
- 【079】用代码来创建 Android 控件
一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...
- [原]动态创建Web控件制做计算器
最近参加了Web基础开发的培训,收获不少,做了一个练习,在后台动态创建控件制作了一个简单功能的计算器.程序中控件创建好以后,往往不能放在想要的位置,前台的布局非常麻烦,我用Table.TableRow ...
- 利用css对shiny页面优化及利用htmlwidgets包创建HTML控件
内容来源:2017年5月20日,乐逗游戏高级数据分析师在"第十届中国R会议软件工具专场"进行<HTTPS最佳安全实践>演讲分享.IT大咖说作为独家视频合作方,经主办方和 ...
- firefox扩展开发(二):用XUL创建窗口控件
firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...
- Qt QWidget实现消息提示控件TipsWidget
前言 用Qt实现一个消息提示控件,控件宽度会根据显示的内容多少来动态伸展,控件显示三秒钟过后会自动渐变透明度然后最终消失,这有点类似于Android的Toast控件,都是用于消息短暂提示. 源码 头文 ...
- Qt界面开发(各种控件以及图表)
Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...
最新文章
- Kylin集群部署和cube使用
- android webview 更新,Android WebView缓存没更新解决方案
- ecs 对比 本地服务器_ECS训练营Day03_SLB负载均衡实践 - 魔笔钨丝浣
- k8s集群dns问题解决办法
- 前端学习(3316):connect
- php 弹出保存对话框,如何在不将页面留在PHP中的情况下强制保存为对话框?
- python小老鼠编程_Python小老鼠编程,Python入门到精通(非常详细)
- CF Educational Codeforces Round 57划水记
- php无限级回复页面如何嵌套,php无限级评论嵌套实现代码
- 怎么从转移特性曲线上看dibl_国民技术面试20200910
- centos6 yum 阿里源 配置
- Arduino 水质检测仪(浊度、TDS、温度、电导率、吸光度、硬度)带18b20温度补偿。
- getElementById(‘divid‘).innerHTML赋值【js基础】
- 路由算法(Dijkstra, Bellman-Ford算法)
- 此计算机到未能识别网络连接,Win10未识别的网络无法连接到internet如何解决?操作方法...
- 高职单招计算机基础知识题,高职单招计算机基础练习题
- WPF DataGridTextColumn Visibility
- 免费的python编辑器_免的解释|免的意思|汉典“免”字的基本解释
- 自动驾驶地图中的深度学习
- Mysql字段类型转换