相关疑难解决方法(0)

Qt信号和插槽:是否复制了参考参数?

在qt框架中,大多数库信号和插槽使用指针作为参数.我想知道,如果我创建一个信号槽"结构",它将参考作为参数而不是指针,整个参数是否会被复制,或者只是4个字节(32位系统),就像常规的c ++参考一样?

我问这个是因为当我用参考参数创建信号/槽方法时我发现了一些东西.当我接下来的connect时候,QTCreator中的自动完成机制并没有像参与指针参数那样用参考参数提示我.他用常规参数暗示我.例如:

我创建了一个信号和插槽:

...
signals:
     void mySignal(int& parameter);
private slots:
     void on_mySignal(int& parameter);
Run Code Online (Sandbox Code Playgroud)

然后我尝试连接它们,Qt没有添加&参数参考:

...
connect(this, SIGNAL(mySignal(int)), this, SLOT(on_mySignal(int)));
Run Code Online (Sandbox Code Playgroud)

我必须手动更改为:

connect(this, SIGNAL(mySignal(int&)), this, SLOT(on_mySignal(int&)));
Run Code Online (Sandbox Code Playgroud)

因此,我想知道,甚至参考信号/插槽?我将非常感谢所有的帮助.

c++ qt slots qt-signals

2
推荐指数
1
解决办法
1537
查看次数

标签 统计

c++ ×1

qt ×1

qt-signals ×1

slots ×1