1
我想修改Qt的狀態機框架工作示例。我在Qt designer中創建了一個QWidget,並添加了一個標籤和按鈕。這是我的代碼狀態機和Qt設計器
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
setupStateMachine();
}
void MainWindow:: setupStateMachine()
{
QStateMachine machine;
QState *s1 = new QState();
QState *s2 = new QState();
QState *s3 = new QState();
s1->assignProperty(ui->label, "text", "In state s1");
s2->assignProperty(ui->label, "text", "In state s2");
s3->assignProperty(ui->label, "text", "In state s3");
s1->addTransition(this->ui->button, SIGNAL(clicked()), s2);
s2->addTransition(this->ui->button, SIGNAL(clicked()), s3);
s3->addTransition(this->ui->button, SIGNAL(clicked()), s1);
machine.addState(s1);
machine.addState(s2);
machine.addState(s3);
machine.setInitialState(s1);
machine.start();
qDebug() << "State Machine Created";
}
它正在運行,但單擊該按鈕不會更改標籤文本。我在哪裏犯錯?我是Qt新手,請原諒,如果這是一個愚蠢的問題。
...或使其成爲會員。 –