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(ピクセル出発) を公開スロットとして宣言しましたか? 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 に答える