具有滚动效果的QT屏幕切换(例如: - 从第一个屏幕滚动到第二个屏幕)

时间:2011-10-26 13:41:30

标签: qt

我正在开发一个QT UI应用程序。在哪里,主屏幕显示在QT应用程序的启动。然后在按钮按下事件中必须显示第二个屏幕,依此类推。

但是要将屏幕从屏幕1切换到屏幕2,必须向用户显示滚动效果,滚动效果可以是从左到右(或从右到左)从第一个移动到第二个。

到目前为止,我已经实现了使用QT动画框架。

任何人都可以建议我如果还有其他方法可以实现这个目标吗?

对此的任何帮助都非常感谢。

先谢谢 VARUN

1 个答案:

答案 0 :(得分:0)

基本上,我有一个具有更高优先级的MultiThreaded应用程序UI线程和具有NormalPriority的工作线程。 Worker线程一直持续监听来自其他应用程序的事件。

当我通过设置setDuration(1500)的动画持续时间开始切换屏幕的动画时;动画在UI线程中顺利进行。仅当工作线程未收到任何事件时。如果工作线程在动画期间从其他应用程序接收任何事件,我可以看到动画中的阻塞效果。

原因是,当UI线程动画化时,如果工作线程收到导致UI中阻塞效应的事件,则切换到工作线程。

如果我使用滚动小部件而不是动画。在这种情况下,UI线程不会切换到工作线程,直到它处理其事件队列中的所有事件。导致平滑滚动。为了实现这一点,我在事件循环中滚动了10个像素。所以我可以看到平滑的滚动。

如果您有任何其他方案(或其他方式)我可以尝试,请建议我吗?所以我可以看到没有阻塞效果的平滑动画。