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)槽函數的定義
就和一般函數的定義一樣樣啦,別忘了在頭文件中先聲明。