2011-11-11 174 views
0

我是Qt新手,偶然發現一個問題,我無法在Google上找到答案。QT插槽和信號參數

說我想發送加速度和速度字段。我定義了一個自定義信號:

setProperties(QString,double,double,bool) 

但是,如何判斷速度和加速度之間的區別呢?

connect(dialog, SIGNAL(setProperties(QString,double,double,bool)), 
     this, SLOT(somerandomslot())); 

randomslot需要得到的速度場和加速度場和操縱它們,但在上述SIGNAL他們只是double

回答

2

在這種情況下,你somerandomslot()功能也許應該有一個匹配的函數簽名,這樣的價值觀emit版在你的信號可以得到傳遞給它:

void somerandomslot(const QString &foo, double a, double v, bool bar); 

那麼你的連接調用是這樣的:

connect(dialog, SIGNAL(setProperties(QString,double,double,bool)), this, SLOT(somerandomslot(QString, double, double, bool))); 

當您的somerandomslot()被調用時,您將可以訪問這些變量。

+0

嗨克里斯,感謝您的迴應,但隨機抽獎如何區分第二個雙人組的第一個雙人組?也就是說,setProperties的第一個double是否與來自某個隨機模塊的第一個double匹配?謝謝你一堆 –

+0

它會以與你調用發射時傳遞給你的信號的參數相同的順序出現。就像任何C++函數調用一樣。 – Chris