0
Qt 프레임 워크를 배우려고합니다. 내 QStateMachine 코드가 올바른 작업을 수행합니다 (버튼을 누르면 채팅 창이 팝업 크기로 바뀝니다). 좋은 시각적 전환 효과를 얻기 위해 애니메이션의 속도를 변경할 수 없습니다. 제안 사항이 있으십니까?Qt QStateMachine 애니메이션 길이를 설정하는 방법
ChatWindowOpenAnimation = new QPropertyAnimation(widget.pushButton, "geometry");
이 애니메이션은 잘못된 위젯에 적용되고 있었다
ChatWindowOpenAnimation = new QPropertyAnimation(widget.groupBox, "geometry");
해야
MainWindow::MainWindow()
{
widget.setupUi(this);
// chat window - Chat button opens
ChatWindowClosedState = new QState();
ChatWindowOpenState = new QState();
ChatWindowOpenGeometry = widget.groupBox->geometry();
ChatWindowClosedGeometry = widget.pushButton->geometry();
ChatWindowClosedGeometry.translate(-ChatWindowClosedGeometry.width(), 0);
ChatWindowClosedState->assignProperty(widget.groupBox, "geometry", ChatWindowClosedGeometry);
ChatWindowOpenState->assignProperty(widget.groupBox, "geometry", ChatWindowOpenGeometry);
ChatWindowCloseTransition = ChatWindowClosedState->addTransition(widget.pushButton, SIGNAL(clicked()), ChatWindowOpenState);
ChatWindowCloseAnimation = new QPropertyAnimation(widget.pushButton, "geometry");
ChatWindowCloseAnimation->setDuration(5000);
ChatWindowCloseTransition->addAnimation(ChatWindowCloseAnimation);
ChatWindowOpenTransition = ChatWindowOpenState->addTransition(widget.pushButton, SIGNAL(clicked()), ChatWindowClosedState);
ChatWindowOpenAnimation = new QPropertyAnimation(widget.pushButton, "geometry");
ChatWindowOpenAnimation->setDuration(5000);
ChatWindowOpenTransition->addAnimation(ChatWindowOpenAnimation);
machine = new QStateMachine(this);
machine->addState(ChatWindowClosedState);
machine->addState(ChatWindowOpenState);
machine->setInitialState(ChatWindowClosedState);
machine->start();
}