步骤:

1)首先构建QSignalMapper对象

2)根据实际情况,设置控件与QsignalMapper对象与函数map()连接

3)建立信号连接:使用setMapping()发送带有参数的mapped()信号

3)将QSignalMapper对象与自定义槽函数连接

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QTextCodec>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{QTextCodec * codec = QTextCodec::codecForLocale();QTextCodec::setCodecForTr(codec);ui->setupUi(this);//构建signalMapper对象signalMapper = new QSignalMapper(this);//调用函数更新主界面布局(添加按钮)buttonFunc();//连接connect(signalMapper,SIGNAL(mapped(QString)),SLOT(TextToBrswser(QString)));
}MainWindow::~MainWindow()
{delete ui;
}//
void MainWindow::buttonFunc()
{for(int index = 0;index < 10;index++){QPushButton *button  = new QPushButton(this);button->setText(tr("第%1按钮").arg(QString::number(index+1,10)));ui->verticalLayout->addWidget(button);if(index == 9){button->setText(tr("清空"));}//button信号clicked()与map()连接connect(button,SIGNAL(clicked()),signalMapper,SLOT(map()));//建立信号映射,发送mapped()信号signalMapper->setMapping(button,button->text());}
}void MainWindow::TextToBrswser(QString tmpStr)
{ui->textBrowser->append(tr("%1 被点击了!").arg(tmpStr));//在此可以根据参数确定是哪个按钮被点击,可以进一步做出操作//如果“清空”按钮被点击,清空textBrowser中的内容if(tmpStr.contains(tr("清空"))){ui->textBrowser->clear();}
}

Qt编程12:QSignalMapper多对一信号影射简单使用相关推荐

  1. 【QT编程】QT对象间通讯——信号与槽

    01.目录 文章目录 01.目录 02.信号与槽介绍 03.信号与槽机制 04.信号(Signal) 05.槽函数(Slot) 06.一个示例 07.一个真实的示例 08.信号和槽使用默认参数 09. ...

  2. Qt编程中的信号和槽机制

    Qt编程中的信号和槽机制 在使用自定义类创建一个按钮之后,只能看到一个按钮的图形,但是使用鼠标点击并无任何反应,下面想要实现一个"点击按钮可以关闭窗口"的功能. 关闭窗口的功能可以 ...

  3. Qt 5.12学习笔记--QML性能策略

    Qt 5.12学习笔记--QML性能策略 1 简介 2 时间因素 2 性能分析 3 JavaScript 部分 4 绑定 5 类型转换 6 解析属性 6 属性绑定 7 序列提示(Sequence ti ...

  4. 第二章 Qt编程核心技术

    QT编程核心技术介绍 第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎 ...

  5. QT编程核心技术介绍

    第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎不需要关心这些区别,使 ...

  6. 【转】10.Qt编程涉及的术语和名词

    本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C++ 开发过程中也会使用到. Project Project 的中文翻译是"项目" ...

  7. theoretical-零基础学Qt4编程之Qt核心机制与原理之信号与槽-

    信号与槽 信号和槽机制是Qt的核心机制之一,要掌握Qt编程就需要对信号和槽有所了解.信号和槽是一种高级接口,它们被应用于对象之间的通信,它们是Qt的核心特性,也是Qt不同于其它同类工具包的重要地方之一 ...

  8. 高级shell脚本编程之函数库、信号与陷进、文件处理、数组、安全性

    高级shell脚本编程之函数库.信号与陷进.文件处理.数组.安全性 1.函数库 把所有需要用到的函数都放到一个文件中,然后每个脚本的开头包含这个文件.例如: #!/bin/sh scope(){ lo ...

  9. qt5.12 linux版本,Qt 5.12 LTS发布下载,附新功能及更新内容

    Qt 5.12 已经发布下载,这是一个 LTS 长期支持版本,使用 Qt 5.12 的用户将获得三年的技术支持.下面将为你介绍 Qt 5.12 的新功能及更新内容,同时,对比上一个 LTS 版本 5. ...

最新文章

  1. nginx源码编译、负载均衡及模块的扩展
  2. php 验证qq密码错误,QQ输入正确密码却验证错误的解决办法
  3. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170404
  4. eclipse入门指南
  5. CSS中盒模型的理解
  6. C++ primer 第11章 关联容器
  7. 全源最短路径之弗洛伊德算法(C语言)
  8. 这才是2018年的技术趋势:云、大数据、IOT深度融合
  9. 白盒测试工具―Winams
  10. RK3399pro 使用TNN日记 2(Linux系统)
  11. 算法课设——逃狱的汉尼拔博士
  12. 【数藏之家】盘点周杰伦的NFT之路,NFT如何借明星之力形成“破圈效应”?
  13. 从一到无穷大 #5 公有云时序数据库定价
  14. 老罗的锤子,3000块钱贵吗?
  15. appdata是什么文件夹?appdata文件夹可以删除吗?
  16. python批量下载邮件附件
  17. 基于AndroidStudio员工绩效考核评价系统app设计
  18. 归一化数字角频率_数字信号处理中的归一化频率
  19. 硕士复试自我介绍中英模板
  20. Elasticsearch mapping与analysis

热门文章

  1. Gearman 介绍
  2. kubeadm安装Kubernetes-1.6.1集群
  3. 作为技术负责人,如何从0搭建公司后端技术栈
  4. 结对第二次—文献摘要热词统计及进阶需求
  5. python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...
  6. 腾讯新闻android2.3,腾讯新闻Android客户端更新 加入投票功能
  7. 武海滨:沪江如何搭建优秀的在线教育平台
  8. django页面跳转问题
  9. 这个专门提供多角恋约会的软件,终于被谷歌封杀了
  10. 入职外包一个月,我离职了