相关疑难解决方法(0)

连接Qt 5中的过载信号和插槽

我在Qt 5中无法掌握新的信号/槽语法(使用指向成员函数的指针),如新信号槽语法中所述.我尝试改变这个:

QObject::connect(spinBox, SIGNAL(valueChanged(int)),
                 slider, SLOT(setValue(int));
Run Code Online (Sandbox Code Playgroud)

对此:

QObject::connect(spinBox, &QSpinBox::valueChanged,
                 slider, &QSlider::setValue);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译它时出错:

错误:没有匹配的函数用于调用 QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))

我曾经尝试过在Linux上使用clang和gcc -std=c++11.

我做错了什么,我该如何解决?

c++ qt qt5

117
推荐指数
3
解决办法
5万
查看次数

std :: function与标准函数

我正在使用函数指针std :: function, 并遇到了以下问题.

让我们考虑下面的代码:

#include <cmath>
#include <functional>

// g++ -std=c++17 SF.C -o SF
// clang++ -std=c++17 SF.C -o SF

int main()
{
    typedef double (*TpFunctionPointer)(double) ;

    TpFunctionPointer pf1 = sin;                     // o.k.
    TpFunctionPointer pf2 = std::sin;                // o.k
    TpFunctionPointer pf3 = std::riemann_zeta;       // o.k

    std::function< double(double) > sf1( sin );                // o.k
    std::function< double(double) > sf2( std::sin );           // fails
    std::function< double(double) > sf3( std::riemann_zeta );  // fails
}
Run Code Online (Sandbox Code Playgroud)

用函数指针pf1,pf2,pf3和sf1 编译g++ v8.2clang …

c++ std c++17

0
推荐指数
1
解决办法
121
查看次数

标签 统计

c++ ×2

c++17 ×1

qt ×1

qt5 ×1

std ×1