提问人:Juan Antonio Miralles 提问时间:11/14/2023 最后编辑:Juan Antonio Miralles 更新时间:11/15/2023 访问量:59
连接功能失败,因为信号找不到对象 [关闭]
connect function fails because the signal cannot find the object [closed]
问:
调用时,我收到错误“无法调用没有对象*的成员功能”。QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
我正在尝试将自定义按钮发出的信号连接到按钮的容器类中定义的插槽。 在容器中,我定义:
signals:
void hovered();
在容器标头中,我定义了一个类对象:customButton
customButton* casilla = new customButton;
插槽如下:
public slots:
void mostrarCasilla();
现在,在容器构造函数中,我尝试用这条线连接信号和插槽
QObject::connect(casilla,&customButton::hovered(),this,&board::mostrarCasilla());
我认为这是某种简单的错误,如果我让它工作,我会把完整的代码放在社区的例子中
答:
2赞
0xlitf
11/14/2023
#1
&A::func
是一个成员函数指针,其作用是获取 func 的地址。&
对于,是一个函数调用,也许你可以得到一个值之后,但是这个值是R值,需要一个L值,所以在任何情况下都是错误的。func()
()
func()
&
&A::func()
评论
0赞
Juan Antonio Miralles
11/15/2023
非常感谢,现在我更了解这个功能是如何工作的
0赞
Swift - Friday Pie
11/15/2023
吹毛求疵 - 在任何情况下都是错误的,其中 是类 A 的非静态成员函数。 否则,表达式可能会有其他含义(例如,将地址作为调用结果等)&A::func()
func
operator()
评论
&customButton::hovered()
-->&customButton::hovered
?同样,从插槽定义中删除 。()