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

简单医院网站深圳装修网站建设

简单医院网站,深圳装修网站建设,惠州seo外包费用,做物流网站的公司吗在使用Qt 5中的新信号和槽连接语法(使用成员函数指针)时,我遇到了一些问题。根据新的信号槽语法的描述,我尝试将以下代码: QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));改为&…

在使用Qt 5中的新信号和槽连接语法(使用成员函数指针)时,我遇到了一些问题。根据新的信号槽语法的描述,我尝试将以下代码:

QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));

改为:

QObject::connect(spinBox, &QSpinBox::valueChanged,slider, &QSlider::setValue);

但在编译时出现错误:

error: no matching function for call to QObject::connect(QSpinBox*&,<unresolved overloaded function type>, QSlider*&, void(QAbstractSlider::*)(int))

我在Linux上使用clang和gcc编译,且都使用了-std=c++11选项。

问题分析

错误消息指出:"unresolved overloaded function type"。编译器无法确定你是指QSpinBox::valueChanged(int)还是QSpinBox::valueChanged(QString),因为这两个信号名称是重载的。

解决方法

使用qOverload (Qt 5.7及更高版本)

从Qt 5.7开始,提供了一些辅助函数来简化选择特定重载的方法,可以这样写:

connect(spinBox, qOverload<int>(&QSpinBox::valueChanged),slider, &QSlider::setValue);

早期版本的解决方案

对于Qt 5.6及更早版本,你需要通过类型转换明确指定要使用的重载信号:

connect(spinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),slider, &QSlider::setValue);

虽然这种方法看起来不美观,但这是解决问题的唯一办法。因此,最好避免信号和槽的重载。

使用宏定义简化代码

你可以定义一个宏来简化类型转换:

#define CONNECTCAST(OBJECT, TYPE, FUNC) static_cast<void(OBJECT::*)(TYPE)>(&OBJECT::FUNC)

之后,使用这个宏来连接信号和槽:

QObject::connect(spinBox, CONNECTCAST(QSpinBox, int, valueChanged),slider, &QSlider::setValue);

使用lambda表达式

另一种方法是使用lambda表达式将槽包装起来:

connect(spinBox, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),[slider](int value) { slider->setValue(value); });

这样可以避免显式的类型转换,使代码更简洁。

总结

在Qt 5中,当处理重载信号和槽时,有多种方法可以选择正确的重载。根据你的Qt版本,可以使用辅助函数qOverload、类型转换、宏定义或者lambda表达式来解决这个问题。无论哪种方法,都能确保在编译时进行类型检查,从而提高代码的可靠性。

http://www.yayakq.cn/news/891977/

相关文章:

  • 威海住房建设部官方网站天津快推科技有限公司
  • 做海报的网站什么编辑平台建设上线网站
  • 清远企业网站建设公司wordpress 边栏修改
  • 广州做网站 汉狮网络淮北官方网站
  • 三亚做网站推广东莞招聘网官方网站
  • 网站建设展板企业宣传视频制作免费版
  • 做一个小型网站多少钱WordPress留言板插件使用
  • 什么网站动物和人做的吗wordpress语言包插件
  • 东莞营销型网站建设国内做网站费用
  • 阳江市建设局网站软件服务外包
  • asp网站建设类论文wordpress易企秀
  • 网站建设步骤实践报告网站建设开场白怎么说
  • 男女朋友在一起做那个的网站柳州做网站那家好
  • 中英文网站开发会议网站
  • 网站开发工程师是什么内容安丘网站建设多少钱
  • 制作网站培训网站设计主页
  • 手机怎么创网站免费博山网站建设
  • 注册公司网站模板下载wordpress页面找不到该网页
  • 建设 春风 摩托车官方网站网站建设的具体过程
  • 宿迁房产网官方网站海尔网站建设
  • 网站后缀pw网络运维工程师薪酬
  • php做的商城网站设计论文wordpress tag 模板
  • 做网站说什么5.0啥意思网络技术培训机构
  • 温州建设网站公司重庆建设工程施工安全管理平台
  • 360安全网站怎么做号码认证dw做的网站要多大
  • 制作制作网站开发网站建设公制度
  • 企业网站开发服务器科技设计网站有哪些内容
  • 地方性资讯门户网站一般公司常用的邮箱
  • 同城同镇网站建设网站免费建站
  • 成都商城网站建设牧风的在wordpress