Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取Qt5中从信号传输到插槽的数据?_C++_Qt_Qt5_Signals Slots_Qt Signals - Fatal编程技术网

C++ 如何获取Qt5中从信号传输到插槽的数据?

C++ 如何获取Qt5中从信号传输到插槽的数据?,c++,qt,qt5,signals-slots,qt-signals,C++,Qt,Qt5,Signals Slots,Qt Signals,我是Qt的新手,现在我使用信号和插槽。我想定义一个信号 void send(int); 并在A.cpp中以一些int值(如“5”)发出此信号 emit send(5); 之后,在B.h中,我定义了一个槽 void receive(int i); 使用连接功能,我连接信号和插槽 connect(a,&a::send,b,&receive); 然后这两个刚刚连接,int值5成功传输到插槽接收。它也可用于接收领域。 但困扰我的是,我如何获得这个值或这个“5”,并在接收函数之外使

我是Qt的新手,现在我使用信号和插槽。我想定义一个信号

void send(int);
并在A.cpp中以一些int值(如“5”)发出此信号

emit send(5);
之后,在B.h中,我定义了一个槽

void receive(int i);
使用连接功能,我连接信号和插槽

connect(a,&a::send,b,&receive);
然后这两个刚刚连接,int值5成功传输到插槽接收。它也可用于接收领域。
但困扰我的是,我如何获得这个值或这个“5”,并在接收函数之外使用它。我已经在这一步上呆了好几天了,所以我希望有人能给我一些想法或指导,非常感谢。

假设你的B类看起来像这样,创建一个成员并将收到的值存储在那里

class B : public QObject
{
    Q_OBJECT

public:
    explicit B(QObject *parent = nullptr) noexcept : QObject{parent} {}

    void received(int value) { m_receivedValue = value; }

private:
    int m_receivedValue{0};
};
在您的方法中,您可以使用存储的值,例如


void printReceivedValue const noexcept{qDebug您可以使用一个变量来存储函数receiveint i的i参数值。干杯,伙计,我尝试过您的解决方案,但输出是0,对吗?为什么m_receivedValue被定义为int m_receivedValue{0}不是int m_receivedValue?@muyuanzhang我添加了一些解释谢谢你的回复伙伴,我能理解你的更新,值以及m_receivedValue可以打印在函数received中。这很有用。我应该说清楚,这是我的错,真正让我困惑的是,值和m_receivedValue都只存在如果我想在其他地方使用值,比如在类B中的新函数received_2中,这可能吗?
void received(int value)
{ 
    m_receivedValue = value; 
    printReceivedValue();
}