Я определил свой слот так:
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)
Почему мой слот не работает?
Я думаю, что проблема в том, что в вашем определении SLOT вы указали имя переменной «отступить», что не правильно. Определения SLOT и SIGNAL должны иметь только имя и типы функций. Так:
connect(chp3, SIGNAL(clicked()), this, SLOT(prendpixel1(Pixel)));
Кстати, я думаю, что это также чувствительно к пространству, так SLOT(anotherfn(Pixel, Pixel))
также будет неправильно.
НТН, Рут
Вы объявили void choixPoints :: prendpixel1 (Отступ пикселей) в качестве открытого слота в заголовке?
http://qt-project.org/doc/qt-4.8/signalsandslots.html#a-small-example
Вы также должны зарегистрировать свой тип данных (здесь: «Pixel»):
http://www.developer.nokia.com/Community/Wiki/Qt_Signal/Slot_with_custom_data_types