下面是一个使用 QStateMachine
的简单示例,模拟任务的状态机控制,包含以下状态:
- Idle(空闲)
- Running(运行中)
- Paused(暂停)
- Stopped(停止)
- Finished(完成)
这个例子使用 Qt Widgets 和 Qt 状态机模块(Qt5 或 Qt6)。它创建了一个简单的 GUI,包含几个按钮用于控制状态转换,以及一个状态机来管理状态和过渡。
完整示例代码
1. mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStateMachine>
#include <QState>
#include <QFinalState>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWin