|
5Qter豆
- 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, 100, 50));
- s2->assignProperty(&button, "geometry", QRect(300, 100, 100, 50));
- s3->assignProperty(&button, "geometry", QRect(200, 200, 100, 50));
- // 使用按钮部件的单击信号来完成三个状态的切换
- QSignalTransition *transition1 = s1->addTransition(&button,
- SIGNAL(clicked()), s2);
- QSignalTransition *transition2 = s2->addTransition(&button,
- SIGNAL(clicked()), s3);
- QSignalTransition *transition3 = s3->addTransition(&button,
- SIGNAL(clicked()), s1);
- QPropertyAnimation *animation = new QPropertyAnimation(&button, "geometry");
- transition1->addAnimation(animation);
- transition2->addAnimation(animation);
- transition3->addAnimation(animation);
- QObject::connect(s3, SIGNAL(entered()), &button, SLOT(showMinimized()));
复制代码 这个代码两中最后一句,会在s3时最小化窗口。但是我使用中只有第一次会最小化窗口。后面加入s3不会有最小化的视觉效果。
请问为什么。
|
|