在QT中如何設定一個signal?

 

如下:

class Test : public QObject

{
      Q_OBJECT
     
      public:
      ...
     public slots:
             void ReadTagInfo();
    
     signals:
     void cardidChanged();
          
      private:
       ...
};

以這個範例來看,他connect設定如下:

connect(Test,SIGNAL(cardidChanged()), Test,SLOT(ReadTagInfo()));

而這個SIGNAL是如何觸發的呢?

這就要透過emit cardidChanged(),來觸發signal。使connect產生作用。如:

void Test::ShowTest()
{
    ...
    emit cardidChanged();
    ...
}


當然也可以設定cardidChanged(int)、ReadTagInfo(int)。

產生觸發,並將函數(也是signal)cardidChanged()中的variable傳遞給函數(也是slot)ReadTagInfo()。

cardidChanged(variable) --> ReadTagInfo(variable)

當然也要記得他們的變數格式必須是一制的。

 

By 大亨

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 flykof 的頭像
    flykof

    十年磨一劍

    flykof 發表在 痞客邦 留言(1) 人氣()