1

我已经这样定义了我的插槽:

void choixPoints:: prendpixel1(Pixel depart)
{
//...
}

我想执行以下句子:

Pixel depart= picmou->define(); //definition of a pixel, well defined 
connect(chp3, SIGNAL(clicked()), this, SLOT(prendpixel1(Pixel depart)));

但是,当我执行时,我得到:

QObject::connect: No such slot choixPoints::prendpixel1(Pixel depart)

为什么我的插槽不起作用?

4

2 回答 2

5

我认为问题在于,在您的 SLOT 定义中,您输入了一个变量名“depart”,这是不正确的。SLOT 和 SIGNAL 定义必须只有函数名和类型。所以:

connect(chp3, SIGNAL(clicked()), this, SLOT(prendpixel1(Pixel)));

顺便说一句,我认为它也是空间敏感的,所以SLOT(anotherfn(Pixel, Pixel))也是错误的。

HTH,露丝

于 2013-04-18T14:37:49.943 回答
2

您是否在标头中将 void choixPoints:: prendpixel1(Pixel leave) 声明为公共插槽? http://qt-project.org/doc/qt-4.8/signalsandslots.html#a-small-example

您还必须注册您的数据类型(此处:“像素”): http: //www.developer.nokia.com/Community/Wiki/Qt_Signal/Slot_with_custom_data_types

于 2013-04-18T14:35:04.603 回答