QT5 有關connect

1、按鈕與槽函數連接

 QAbstractButton *stepButton = new QPushButton(tr("step[e]"));
 connect(stepButton, SIGNAL(clicked()), this, SLOT(stepPlay()));

2、action與槽函數連接

QAction *addAct= new QAction("name",this);
connect(addAct,SIGNAL(triggered()), this, SLOT(addSubtitle()));

triggered()是信號,信號在系統中定義了一些,也可以自己在頭文件中定義

signals:
    void sigStateChanged(int state);

然後connect函數中的第二個參數SIGNAL()裏面就能用自己定義的信號,比如SIGNAL(sigStateChanged(int state)),需要注意的是信號的參數要和後面槽函數的參數一樣。

3、action連接信號槽函數的另一種方式。

subAct[i] = new QAction(subtitlename,this); //創建action
connect(subAct[i],&QAction::triggered, this, [ = ] {
                selectSub(subID);
            }); //連接信號槽函

selectSub(subID)是槽函數。 

3、emit信號發射

分爲四個部分

(1)頭文件中,信號的定義:

signals:
    void sigSubAoChanged(); 

(2)信號的發射:在合適的時機發射,比如執行到某個函數就拋出這個信號,當程序檢測到這個信號以後就執行信號對應的槽函數。

 emit sigSubAoChanged();

(3)信號連接槽函數

 connect(&mediaPlayer, SIGNAL(sigSubAoChanged()),
            this, SLOT(refresh()));

當程序檢測到sigSubAoChanged()信號了,就去執行對應的refresh()槽函數。

(4)槽函數的定義

就和一般函數的定義一樣樣啦,別忘了在頭文件中先聲明。

 


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章