QSignalMapper类的使用
Qt中当定义了非常多的button,而他们的信号都同样时(比方都是点击信号),没有必要给他们每一个都设置信号和槽的链接。QSignalMapper给我们攻克了这个难题。
今天完毕这个相似的功能时,不知道怎么办,就问了下度娘,结果就实现了。效果简直太完美了,假设不这么做。我还真的不知道该怎么办。
在完毕的过程中,出现了一个问题,看了半天也没有解决,弄的我是一头雾水。和网上的样例是一模一样的,可就是无法实现装换,最后看了下函数原型。原来和我要船的參数不匹配,我须要的是int型參数。而给传的时候是QString型的,真是郁闷啊!
主要过程例如以下:
1)定义一个QSignalMapper对象
QSignalMapper *signalmapper = new QSignalMapper(this);
2)建立一个无參数的链接
connect(tool_button,SIGNAL(clicked()),signalmapper,SLOT(map()));
3)进行转换
signalmapper->setMapping(tool_button,nIndex);
注意:在转换的时候要细心了,依据你的须要进行转换,setMapping()函数中的參数可不是任意的,第二个參 数就是你要转换的參数,我须要int型,循环中的nIndex就是整形的,要不然在进行后面信号和槽的链接的时候
会非常苦逼!
4)最后我们把信号转发到终于的处理函数slot_Turnpage(int)(信号槽)中
connect(signalmapper,SIGNAL(mapped(int)),this,SLOT(slot_Turnpage(int)));
5)在槽函数中进行对应的操作。(比方)
void ToolBar::slot_Turnpage(int current_page){switch (current_page) {case 0:qDebug()<<"第1个button被按下";break;case 1:qDebug()<<"第2个button被按下";break;default:break;}}
QSignalMapper 它能够把一个无參数的信号翻译成带int參数、QString參数、QObject*參数或者QWidget*參数的信号,在详细的项目中我们能够依据须要进行对应的转换。
QSignalMapper类的使用的更多相关文章
- QSignalMapper类处理多信号关联同一个槽的方法(1)
QSignalMapper这个类并不是个新鲜概念, 早在Qt2里就已经存在, 而且它的功能也是始终如一. 不过由于宣传力度不够(例子里涉及到它的很少)了解这个类人可能还不是很多, 所以特此撰文介绍此类 ...
- QSignalMapper类处理多信号关联同一个槽的方法(2)
例1: QSignMapper *mapper = new QSignMapper(this) QPushButton *btn1 = new QPushButton(this); btn1-> ...
- QSignalMapper Class
/************************************************************************************** * QT QSignal ...
- QT 巧用QSignalMapper分类有序地处理大量信号
转自--> http://blog.csdn.net/cuteqt/article/details/4306900 QSignalMapper这个类并不是个新鲜概念, 早在Qt2里就已经存在, ...
- QSignalMapper的使用和使用场景
目录 QSignalMapper的使用和使用场景 常见场景 下面是参考.可看可不看 这篇写的不错,搬运为Markdown了 可以看一下 参考 QSignalMapper的使用和使用场景 QSignal ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- Qt5中的信号槽
Qt4中的信号槽 Qt4中的信号槽是通过SIGNAL,SLOT两个宏,将参数转换成字符串.Qt编译前,会从源码的头文件中提取由signal和slot声明的信号和槽的函数, 将其组成一张信号和槽对应的字 ...
- Qt动画效果展示(文艺IT男)
该程序使用应用程序单窗口,主窗口继承于QMainWindow:主窗口有5个QToolButton部件(窗口底部的四个以及窗口中央的一个),单击窗口底部的QToolButton部件可以使窗口中央的那个Q ...
- 用Qt写软件系列五:一个安全防护软件的制作(2)
引言 在上一篇中讲述了主窗体的创建和设计.主窗体的无边框效果.阴影效果.拖动事件处理.窗体美化等工作在前面的博客中早就涉及,因此上篇博文中并未花费过多笔墨.这一篇继续讲述工具箱(Tool Button ...
随机推荐
- .net core 2.0学习记录(三):内置IOC与DI的使用
本篇的话介绍下IOC和ID的含义以及如何使用.Net Core中的DI. 一.我是这么理解IOC和DI的: IOC:没有用IOC之前是直接new实例来赋值,使用IOC之后是通过在运行的时候根据配置来实 ...
- Django2.x版本在生成数据库表初始化文件报错
1.待创建的表信息 from django.db import models # Create your models here. class Book(models.Model): name=mod ...
- POJ 1845 Sumdiv (整数唯一分解定理)
题目链接 Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 25841 Accepted: 6382 Desc ...
- OOX之间的关系
OOA,OOD,OOP三者关系OOA的分析结果可以作为OOD的需求模型OOD的设计结果作为OOP的指导蓝图OOP负责最终实现目标系统
- UVA 548.Tree-fgets()函数读入字符串+二叉树(中序+后序遍历还原二叉树)+DFS or BFS(二叉树路径最小值并且相同路径值叶子节点权值最小)
Tree UVA - 548 题意就是多次读入两个序列,第一个是中序遍历的,第二个是后序遍历的.还原二叉树,然后从根节点走到叶子节点,找路径权值和最小的,如果有相同权值的就找叶子节点权值最小的. 最后 ...
- Luogu P2486 染色(树链剖分+线段树)
题解 不妨采取重链剖分的方式把路径剖成区间,然后用线段树维护,考虑如何合并一个区间 struct Node { int lf, rg, tot; }seg[N << 2]; int col ...
- bWAPP练习--injection篇之HTML Injection - Reflected (GET)
什么是Injection? injection,中文意思就是注入的意思,常见的注入漏洞就是SQL注入啦,是现在应用最广泛,杀伤力很大的漏洞. 什么是HTML injection? 有交互才会产生漏洞, ...
- luogu P1378 油滴扩展
题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完毕才能放置下一个油滴. ...
- 【贪心】【后缀自动机】XIII Open Championship of Y.Kupala Grodno SU Grodno, Saturday, April 29, 2017 Problem E. Enter the Word
题意:给你一个串,让你从左到右构造这个串,一次操作可以直接在当前串后面添加一个任意字符,或者拷贝当前串的任意一个子串到当前串的后面.问你最少要多少次操作才能构造出这个串. 从前向后贪心,从当前已构造的 ...
- 【构造】CDOJ1607 大学生足球联赛
请自行百度逆时针轮转法 //单循环赛 逆时针轮转法 #include<cstdio> using namespace std; int n,a[70]; int main(){ scanf ...