首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Qt QStateMachine动画时长

如何设置Qt QStateMachine动画时长
EN

Stack Overflow用户
提问于 2011-04-23 21:28:11
回答 1查看 671关注 0票数 0

我正在尝试学习Qt框架。我的QStateMachine代码做了正确的事情(按下按钮可以改变聊天窗口弹出窗口的大小)。我不能改变动画的速度来获得一个很好的视觉过渡。有什么建议吗?

代码如下:

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-06 01:13:29

代码

代码语言:javascript
复制
ChatWindowOpenAnimation = new QPropertyAnimation( widget.pushButton, "geometry" );

应该是

代码语言:javascript
复制
ChatWindowOpenAnimation = new QPropertyAnimation( widget.groupBox, "geometry" );

动画应用到了错误的小部件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5764425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档