2 关联信号槽
Qt状态机有这样一个特性:进入某个状态时会触发QState::entered()信号,离开状态时触发QState::exited()信号,如此,我们使用槽函数关联这两个信号就可以做一些额外的操作了。还是之前的代码,增加两个槽函数,输出字符串:
声明如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStateMachine>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void OnExitStateS1(void);
void OnEnterStateS2(void);
private:
Ui::MainWindow *ui;
QStateMachine machine;
};
#endif // MAINWINDOW_H
实现:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QState>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);