Ну, я разрабатываю приложение Qt, и я хочу использовать Qt State Framework для создания некоторых анимаций.Qt State Machine Transition в макете
Первое: Как можно анимировать группу кнопок, содержащуюся в горизонтальной компоновке, в другую вертикальную компоновку, используя состояние перехода?
Во-вторых: Как я могу показать виджет, когда находится в состоянии? Например, меню: Когда пользователь нажимает кнопку в меню, отображается виджет (который ранее был скрыт с widget-> hide()) ... ???
Это пример кода:
boxInsert = new BoxInsert(this);
boxInsert->hide();
btn1 = new QPushButton("Introducir", this);
btn2 = new QPushButton("Informe", this);
btn3 = new QPushButton("Salir", this);
QStateMachine *machine = new QStateMachine(this);
QState *st1 = new QState(machine);
st1->setObjectName ("menuMode");
st1->assignProperty (btn1, "pos", QPointF(center - btn1->width()/2, 20));
st1->assignProperty (btn2, "pos", QPointF(center - btn1->width()/2, 40));
st1->assignProperty (btn3, "pos", QPointF(center - btn1->width()/2, 60));
st1->assignProperty (boxInsert, "visible", QVariant(false));
QState *st2 = new QState(machine);
st2->setObjectName ("barMode");
st2->assignProperty (btn1, "pos", QPointF(40, 0));
st2->assignProperty (btn2, "pos", QPointF(40, 0));
st2->assignProperty (btn3, "pos", QPointF(40, 0));
st1->assignProperty (boxInsert, "visible", QVariant(true));
machine->setInitialState (st1);
QAbstractTransition *t1 = st1->addTransition (btn1, SIGNAL(clicked()), st2);
//QSequentialAnimationGroup *sq1 = new QSequentialAnimationGroup;
//sq1->addPause (250);
t1->addAnimation (new QPropertyAnimation(btn1, "pos"));
t1->addAnimation (new QPropertyAnimation(btn2, "pos"));
t1->addAnimation (new QPropertyAnimation(btn3, "pos"));
t1->addAnimation (new QPropertyAnimation(boxInsert, "visible"));
machine->start();
Animated GUI жидкость, что QML был изобретен для, вы можете дать ему попробовать –
Что вы имеете в виду анимировать группа Кнопки - это что-то вроде того, что они должны менять цвет? – Tab