2012-05-07 41 views
0

爲什麼我得到這個Qt的,沒有這樣的插槽

Object::connect: No such slot Ide::on_action_Exit_triggered(index) 
Object::connect: (sender name: 'actionClose_Project') 
Object::connect: (receiver name: 'Ide') 

當我試試這個:

connect(this->ui->actionClose_Project, SIGNAL(triggered()), this, SLOT(on_action_Exit_triggered(index))); 

void Ide::on_action_Exit_triggered(int index) 
{ 
    qDebug()<<"test\n"; 
} 

謝謝。

+0

使用參數的類型,而不是它的名稱。 –

+0

從哪裏獲得價值? – yonutix

+1

正確的簽名是'SLOT(on_action_Exit_triggered(int))',而不是'SLOT(on_action_Exit_triggered(index))'。 –

回答

4

請插入的函數原型是這樣的:

connect(this->ui->actionClose_Project, SIGNAL(triggered()), this, SLOT(on_action_Exit_triggered(int))); 

您使用這種格式不是通常使用的插槽。信號和時隙在參數上應該相同。

+4

雖然這是正確的,但我認爲它不會起作用。信號必須至少有與其連接的插槽一樣多的參數。 – Mat

+1

@Mat:如果這些參數在插槽聲明中有一個默認值,我認爲您可以連接到具有更多參數的插槽。 – Fred

+0

http://doc.qt.nokia.com/4.7-snapshot/signalsandslots.html#signals-and-slots-with-default-arguments - 不,它不會像上面寫的那樣工作。 – Mat

相關問題