Qt信号槽信号函数重载问题 error: C2664: “QMetaObject::Connection const”

复制代码
//    connect(spinFontSize,&QSpinBox::valueChanged,this,&MainWindow::spinFontSize_valueChanged);//由于信号函数存在重载,发送者找不到正确信号函数。
    //改用A.Qt4带形参方式
//    connect(spinFontSize,SIGNAL(valueChanged(int)),this, SLOT(spinFontSize_valueChanged(int)));
    //改用B.QOverload(推荐方式,理由:QT5有语法编译检测,写法较简短)
    /*1.该函数返回一个指向重载函数的指针,其中的模板参数是重载函数参数类型的列表(list)。functionPointer是重载函数(成员函数)的指针:
     * qOverload<T>(functionPointer)//C++14风格
     * 2. QOverload<>::of(&Foo::overloadedFunction)
     *    QOverload<int, QString>::of(&Foo::overloadedFunction)//c++11风格
    */
    connect(spinFontSize,QOverload<int>::of(&QSpinBox::valueChanged),this,&MainWindow::spinFontSize_valueChanged);
    connect(comboFont,qOverload<const QString &>(&QFontComboBox::currentIndexChanged),this,&MainWindow::comboFont_currentIndexChanged);
//    connect(comboFont,QOverload<const QString&>::of(&QFontComboBox::currentIndexChanged),this,&MainWindow::comboFont_currentIndexChanged);
复制代码

参考: error: C2664: “QMetaObject::Connection const”_Flying Bear的博客-CSDN博客 里面提到了使用qoverload方法,好用,解决了问题。

 Qt qOverload函数介绍_qoverload包括在哪个头文件_尚庆龙的博客-CSDN博客 里面提到了qoverload如何使用

posted @   小头痛  阅读(292)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示