相关疑难解决方法(0)

如何使这个Qt状态机工作?

我有两个可以检查的小部件,以及一个应该包含大于零的值的数字输入字段.每当检查两个小部件,并且数字输入字段包含大于零的值时,应启用一个按钮.我正在努力为这种情况定义一个合适的状态机.到目前为止,我有以下内容:

QStateMachine *machine = new QStateMachine(this);

QState *buttonDisabled = new QState(QState::ParallelStates);
buttonDisabled->assignProperty(ui_->button, "enabled", false);

QState *a = new QState(buttonDisabled);
QState *aUnchecked = new QState(a);
QFinalState *aChecked = new QFinalState(a);
aUnchecked->addTransition(wa, SIGNAL(checked()), aChecked);
a->setInitialState(aUnchecked);

QState *b = new QState(buttonDisabled);
QState *bUnchecked = new QState(b);
QFinalState *bChecked = new QFinalState(b);
employeeUnchecked->addTransition(wb, SIGNAL(checked()), bChecked);
b->setInitialState(bUnchecked);

QState *weight = new QState(buttonDisabled);
QState *weightZero = new QState(weight);
QFinalState *weightGreaterThanZero = new QFinalState(weight);
weightZero->addTransition(this, SIGNAL(validWeight()), weightGreaterThanZero);
weight->setInitialState(weightZero);

QState *buttonEnabled = new QState();
buttonEnabled->assignProperty(ui_->registerButton, "enabled", true);

buttonDisabled->addTransition(buttonDisabled, …
Run Code Online (Sandbox Code Playgroud)

c++ qt state-machine qstatemachine

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

qstatemachine ×1

qt ×1

state-machine ×1