gpt4 book ai didi

c++ - 如何将信号作为函数参数传递?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:40 32 4
gpt4 key购买 nike

所以我希望创建我们自己的通用继承复选框类,该类将能够在其构造函数中获取一些值并弹出一个以我们需要的方式完全连接到我们的模型的小部件。

目前我们在我们的视野中做这样的事情

connect(checkboxWidget, &QCheckbox::Clicked, this, &VMyView::Signal);

单击复选框时从 VMyView 发出信号。

如果我想将该信号作为参数传递到我的新继承类中以连接到它自己的连接语句中,我该怎么做?

研究表明我可以传递一个 const char* 但我得到信号/槽不匹配的编译错误。

例子

CheckBox(View myView, const char* signal)
{
connect(this, &QCheckBox::Clicked, myView, signal);
}

返回信号和插槽参数不兼容的错误。我也试过 SIGNAL(signal) 得到了同样的结果。

最佳答案

最终解决方案非常简单

而不是在我的 View 中使用它

connect(pCheckbox, &QCheckBox::clicked, this, &MyView::Signal);

我用

    connect(this, &QCheckBox::clicked, View, signal);

通过函数指针发出信号并进入我的函数

MyCheckBox::MyCheckBox(QWidget* parent, MyView* View, void(MyView::*signal)(bool))

关键要点是

void(MyView::*signal)(bool) 

也一样

&MyView::Signal

关于c++ - 如何将信号作为函数参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102611/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com