Qt 遍历多个按钮单击信号带参数,绑定到一个槽

这篇具有很好参考价值的文章主要介绍了Qt 遍历多个按钮单击信号带参数,绑定到一个槽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Qt5最新特性、最高效写法 只查找一级子控件

QList listBtn = ui->gbSel->findChildren(QString(),Qt::FindDirectChildrenOnly);

for(int i=0;i<listBtn.count();++i)//++i比i++效率高,i++需要创建临时变量加1

{

connect(listBtn[i],&QPushButton::clicked,[=]{selCX(i);});

}

QT5 写法,也是利用lambda表达式来实现

for(int i=0;igbSel->layout()->count();++i)//++i比i++效率高,i++需要创建临时变量加1

{

QWidget *widget = ui->gbSel->layout()->itemAt(i)->widget();

QPushButton *btn = qobject_cast(widget);

if(btn!=nullptr)

{

connect(btn,&QPushButton::clicked,[=]{

selCX(i);

});

}

}

QT4 简洁写法

QSignalMapper *mapper = new QSignalMapper(this);

for(int i=0;igbSel->layout()->count();++i) //++i比i++效率高,i++需要创建临时变量加1

{

QWidget *widget = ui->gbSel->layout()->itemAt(i)->widget();

QPushButton *btn = qobject_cast(widget);

if(btn!=nullptr)

{

connect(btn,SIGNAL(clicked()),mapper,SLOT(map()));

mapper->setMapping(btn,i);

}

}

connect(mapper,SIGNAL(mapped(int)),this,SLOT(selCX(int)));文章来源地址https://www.toymoban.com/news/detail-800936.html

QT4 写法,比较好理解的,用到QSignalMapper

QSignalMapper *mapper = new QSignalMapper(this);

connect(ui->cx1,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx2,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx3,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx4,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx5,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx6,SIGNAL(clicked()),mapper,SLOT(map()));

connect(ui->cx7,SIGNAL(clicked()),mapper,SLOT(map()));

mapper->setMapping(ui->cx1,0);

mapper->setMapping(ui->cx2,1);

mapper->setMapping(ui->cx3,2);

mapper->setMapping(ui->cx4,3);

mapper->setMapping(ui->cx5,4);

mapper->setMapping(ui->cx6,5);

mapper->setMapping(ui->cx7,6);

connect(mapper,SIGNAL(mapped(int)),this,SLOT(selCX(int)));

到了这里,关于Qt 遍历多个按钮单击信号带参数,绑定到一个槽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt UI上的按钮和创建的按钮绑定 click 点击事件

    如果在ui 上 的按钮 绑定点击事件,按钮鼠标右键转到槽,点击clicked(),即可创建函数。 动态创建的按钮需要 用 connect 连接

    2024年02月15日
    浏览(49)
  • WPF 控件CommandParameter绑定多个参数

    新建一个类,继承IMultiValueConverter xaml中添加引用 xmlns:{wpfbd}=\\\"clr-namespace:{新建类所在的命名空间}\\\" 添加完重新生成一次 添加资源 为控件添加参数 在View Model中使用多个参数

    2024年02月09日
    浏览(40)
  • 【精简】Vue 一个@click时间绑定多个点击事件

    多个方法之间使用逗号分隔(经测试其实逗号和分号都可以) 经过debugger测试 好像m1和m2执行是按@click写的顺序来执行的并非异步

    2024年02月02日
    浏览(52)
  • git:一个本地仓库绑定多个远程的方法以及遇到的问题

    绑定方法见知乎大佬:本地Git仓库关联多个远程仓库的两种方法 一般情况下,没人这么搞! 但是公司迁移git仓库阶段,xx云环境上的gitlab要有操作记录,不然影响整体评分,这就不得一个本地仓库关联了原来的仓库+新的xx云环境的仓库 我才用的是上述文章里的第二种方式:

    2024年02月09日
    浏览(51)
  • QT信号与槽的第五个参数

    1、Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnection类型。 2、Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,

    2024年02月13日
    浏览(48)
  • Python 中使用 Selenium 单击按钮

    我们可以使用 Python 中的 selenium 包在几乎所有主要的 Web 浏览器上自动执行任务。 我们可以使用此包检索元素、填写表单、单击按钮以及执行其他此类操作。 本篇文章将介绍如何在 Python 中使用 selenium 单击网页上的按钮。 我们将首先导入 webdriver 类并创建其对象以启动连接并

    2024年02月20日
    浏览(26)
  • qt解决信号和槽连接时传递额外参数的问题

    QSignalMapper 是 Qt 框架中的一个类,用于解决信号和槽连接时传递额外参数的问题。当一个信号被触发时,QSignalMapper 可以将该信号与一个特定的参数关联起来,并将信号与对应的槽函数进行连接。 下面是关于 QSignalMapper 的一些详细解释: 1.作用: QSignalMapper 类的主要作用是在一

    2024年02月07日
    浏览(38)
  • linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

    1.apache目录介绍 1.准备测试页面 2.访问控制测试 可以直接编辑apache主配置文件 修改默认网站发布目录 配置域名解析: 测试访问 基于端口 访问:www.soso666.com 访问: test.soso666.com:81 可以配置域名解析,也可以不用配域名解析

    2024年02月04日
    浏览(49)
  • chatgpt赋能python:Python中*para:使用一个参数解决多个参数

    Python是广泛使用的编程语言之一,它非常灵活,可扩展性强,可以通过许多不同的方式实现编程目标。在Python中,有一种非常有用的特性,那就是使用 para来代替多个参数。接下来,我们将介绍Python中 para的用法以及为什么它是一个方便且强大的工具。 在Python中, para是一个特

    2024年02月07日
    浏览(34)
  • Qt界面编程(四)—— QMainWindow(一个菜单栏、多个工具栏、多个停靠部件、一个状态栏、一个中心部件)、资源文件

    目录 1. 菜单栏 2. 工具栏 3. 状态栏 4. 停靠部件(也称为铆接部件、浮动窗口) 5. 核心部件(中心部件) 6. 使用UI文件创建窗口 6.1 UI设计窗口介绍 6.2 菜单栏 6.2.1 添加/删除菜单栏 6.2.2 添加菜单 6.2.3 添加菜单项 6.2.4 添加多级菜单 6.3 工具栏 6.3.1 添加/删除工具栏 6.3.

    2024年01月22日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包