当前位置: 首页 > news >正文

【QT问题】 Qt信号函数如果重名,调用怎么处理

问题描述:

在调用某个类的信号函数的时候,出现信号函数名字相同,参数不同的情况,但是Qt在链接信号槽的时候,又不需要指明信号函数参数,此时就会出现无法分辨的情况。

例如:QComboBox的信号

Q_ SIGNALS:
     void currentIndexChanged(int index);
     void currentIndexChanged(const QString &);

如果用Qt5的信号槽写法,就是如下结果

connect(ui->comboBox, &QComboBox::currentIndexChanged, this, &MainWindow::on_ IndexChanged);

编译器会因不知道该调用哪个方法而报错。

解决办法:

 1、用Qt4的信号槽连接方式来写。

为什么用QT4的connect写就不会出错呢?原因很简单,因为QT4的写的时候,需要带上信号函数和槽函数的参数类型,这样就不会出现问题。

// 连接int类型的信号
connect(comboBox, SIGNAL(currentIndexChanged(int)), receiver, SLOT(mySlotInt(int)));// 连接QString类型的信号
connect(comboBox, SIGNAL(currentIndexChanged(QString)), receiver, SLOT(mySlotString(QString)));

2、使用泛型

 可以通过使用泛型指定要调用的函数,解决信号重载问题。

connect(ui->comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
&MainWindow::on_ IndexChanged);

有用的知识又增加了~

http://www.lryc.cn/news/324814.html

相关文章:

  • 登山小分队(dfs,模拟)
  • Luminar Neo:重塑图像编辑新纪元,Mac与Win双平台畅享创意之旅
  • 计算机二级Python题库深度解析与备考策略
  • 微信商家转账到零钱:实用指南,涵盖开通、使用与常见问题
  • [精选]Kimi到底是什么,将带来什么?
  • MySQL学习笔记------SQL(2)
  • 【循环神经网络rnn】一篇文章讲透
  • KW音乐搜索参数
  • SpringBoot3+Vue3项目的阿里云部署--将后端以及前端项目打包
  • MySQL 存储引擎
  • perl:打开文件夹,选择视频文件,并播放
  • 分布式链上随机数和keyless account
  • 【项目设计】基于MVC的负载均衡式的在线OJ
  • MRC是谁?- 媒体评级委员会 Media Rating Council
  • 反序列化漏洞简单知识
  • Es之正排索引与倒排索引
  • wordpress将图片默认连接到媒体文件
  • Java学习笔记 | Java基础语法 | 03 | 流程控制语句
  • 记录新人的web3之旅
  • 由浅到深认识Java语言(9):Eclipse IDE简介
  • 游戏引擎中的地形系统
  • 【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)
  • 无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。
  • Python学习(一)
  • Day62:WEB攻防-PHP反序列化CLI框架类PHPGGC生成器TPYiiLaravel等利用
  • 运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning
  • java中获取字符串中满足正则表达式的元素集合
  • HTTPS总结
  • Linux之基础IO
  • 【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)