Я создал 4 разных QState, и я хочу скрыть один объект в состоянии перехода evry.QStateMachine как это работает
Это код:
QStateMachine partita;
QState *inizio_mano = new QState();
QState *aspetto_G1_primo = new QState();
QState *aspetto_G1_secondo = new QState();
QFinalState *fine_mano = new QFinalState();
partita.setInitialState(inizio_mano);
inizio_mano -> addTransition(this,presa==true,aspetto_G1_primo);
inizio_mano -> addTransition(this,presa==false,aspetto_G1_secondo);
aspetto_G1_primo -> addTransition(this,stato==true,fine_mano);
aspetto_G1_secondo -> addTransition(this,stato==true,fine_mano);
presa
и stato
являются два bool
меняю на следующем шаге программы.
Теперь у меня есть QGraphicsScene
, и в сцене я добавил в него несколько QGraphicsPixmapItem
.
Например, я хочу, чтобы обновить сцену пряча предмет:
if(presa==true) {object1->hide();}
Я понимаю, что я должен изменить QState (в данном случае от inizio_mano
к aspetto_G1_primo
), и я сделал это, добавив переход ,
Но как я могу скрыть этот предмет?
Как я могу подключить QState aspetto_G1_primo
с object1 -> hide();
Я надеюсь, что я объяснил правильно.
Моя основная проблема: как назначить каждому QState другую конфигурацию сцены?
Параметр 'addTransition' заявления вы написали недействительны , Переходы могут срабатывать * только * путем выключения сигнала или при получении события. Исправьте свой код, чтобы он сначала скомпилировался. –