我正在开发一个QT UI应用程序。在哪里,主屏幕显示在QT应用程序的启动。然后在按钮按下事件中必须显示第二个屏幕,依此类推。
但是要将屏幕从屏幕1切换到屏幕2,必须向用户显示滚动效果,滚动效果可以是从左到右(或从右到左)从第一个移动到第二个。
到目前为止,我已经实现了使用QT动画框架。
任何人都可以建议我如果还有其他方法可以实现这个目标吗?
对此的任何帮助都非常感谢。
先谢谢 VARUN
答案 0 :(得分:0)
基本上,我有一个具有更高优先级的MultiThreaded应用程序UI线程和具有NormalPriority的工作线程。 Worker线程一直持续监听来自其他应用程序的事件。
当我通过设置setDuration(1500)的动画持续时间开始切换屏幕的动画时;动画在UI线程中顺利进行。仅当工作线程未收到任何事件时。如果工作线程在动画期间从其他应用程序接收任何事件,我可以看到动画中的阻塞效果。
原因是,当UI线程动画化时,如果工作线程收到导致UI中阻塞效应的事件,则切换到工作线程。
如果我使用滚动小部件而不是动画。在这种情况下,UI线程不会切换到工作线程,直到它处理其事件队列中的所有事件。导致平滑滚动。为了实现这一点,我在事件循环中滚动了10个像素。所以我可以看到平滑的滚动。
如果您有任何其他方案(或其他方式)我可以尝试,请建议我吗?所以我可以看到没有阻塞效果的平滑动画。