2013-01-04 47 views
2

槽我想知道如果它是可能的(以及如何)使用C++運算符,例如(),[]爲Qt的槽。用C++運營商爲Qt中

看來,編譯器抱怨這個簡單的代碼

class MainWindowDecorator : public QObject 
{ Q_OBJECT 
private: 
//some variables 

public slots: 
    int operator[](int i) 
    { 
    return i; 
    } 
} 

的錯誤是:

Error: Not a signal or slot declaration 
+5

只是好奇,有什麼抱怨嗎?在QtCreator中我沒有得到:S –

+1

是的,錯誤的文字是什麼? – sashoalm

+0

與錯誤 – linello

回答

1

您可以創建將調用專用operator插槽包裝。

的問題是,moc解析器不允許這種定義,可能是因爲它預期的標識符,而不是關鍵字。

+0

的行爲是,我想是因爲我一個圖書館PythonQt其中,以揭露的方法來Python的情況下,必須讓他們聲明爲槽,以暴露方法插槽。 – linello

+0

@linello你用Q_INVOKABLE嘗試過嗎?這也使得metatype系統已知一種方法。 –

+0

好吧,編譯器是好的,但我沒有從PythonQt側預期的結果,我得到的對象是unindexable ...無論如何,感謝您的建議! – linello