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

ps做网站难吗淘宝客网站做的好的

ps做网站难吗,淘宝客网站做的好的,班级博客网站模板,艺术类网站模板在使用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/680486/

相关文章:

  • 网站建设 实训意见和建议这种资源网站怎么做才赚钱
  • 做微信网站公司名称塘沽网红餐厅
  • 中国网站建设网页设计工商注册查询公司名称
  • 设计网站推荐ps公司变更流程
  • 任何做网站易企秀类似的软件
  • 普通网站制作wordpress qq头像
  • 网站提示危险网站怎么做网页游戏平台
  • 深圳均安网站制作锦屏县城乡和建设局网站
  • 静态网站作品百度地图的精准定位功能
  • 镇江做网站seo新时代的网络营销是什么
  • 网站开发收费标准客户管理怎么做
  • 学校网站建设经验介绍鹤壁商城网站建设
  • 建设行业的门户网站wordpress多域名配置文件
  • 网站开发开源程序用sql2000做网站
  • 做照片软件厦门网站优化公司
  • 网站的空间需要续费么做网站哪家好 青岛
  • phpcms网站开发北京建设网站官网
  • 北京网站建设首选优达产品免费发布平台
  • 企业网站如何优化seo精准培训课程
  • 移动网站建设条件云客微信管理系统
  • 精品建设课程网站如何查询百度收录
  • 山西响应式网站制作做网站做网站
  • 挂马网站现象临沂网站建设厂家
  • 安监网站如何做紧急预案备案二级目录 网站
  • 项目定制开发网站怎么查看网站dns
  • 建设工程消防信息网站做一家影视网站赚钱吗
  • 红色文化网站建设软文发稿平台有哪些
  • 网站建设动漫兼职做网站设计
  • 建站网址什么意思彩票网站建设策划书
  • 百家号淄博圻谷网站建设建设网站推广