Qt 노트14

4133 단어 Qt
상태기 프레임
작은 조수 플러그인과 같은 효과를 실현할 수 있습니다.한 상태에서 다른 상태로 전환할 수 있다.The State Machine Framework 키워드 참조
QApplication app(argc, argv);
    QPushButton button("State Machine");
    //           ,             
    QStateMachine machine;
    QState *s1 = new QState(&machine);
    QState *s2 = new QState(&machine);
    QState *s3 = new QState(&machine);
    //       geometry       ,            
    s1->assignProperty(&button, "geometry", QRect(100, 100, 120, 50));
    s2->assignProperty(&button, "geometry", QRect(300, 100, 120, 50));
    s3->assignProperty(&button, "geometry", QRect(200, 200, 120, 50));
    //                      
    QSignalTransition *transition1 = s1->addTransition(&button,
                                                       &QPushButton::clicked, s2);
    QSignalTransition *transition2 = s2->addTransition(&button,
                                                       &QPushButton::clicked, s3);
    QSignalTransition *transition3 = s3->addTransition(&button,
                                                       &QPushButton::clicked, s1);
    QPropertyAnimation *animation = new QPropertyAnimation(&button, "geometry");
    transition1->addAnimation(animation);
    transition2->addAnimation(animation);
    transition3->addAnimation(animation);

    QObject::connect(s3, &QState::entered, &button, &QPushButton::showMinimized);

    //                 
    machine.setInitialState(s1);
    machine.start();
    button.show();
    return app.exec();

상태기에서 애니메이션 사용
속성에 애니메이션을 추가하면 상태가 되면 애니메이션이 재생됩니다.

좋은 웹페이지 즐겨찾기