QT+SDL 闪烁问题

来源:互联网 发布:游戏本编程怎么样 编辑:程序博客网 时间:2024/05/17 08:29


来源:http://www.zzzyk.com/show/0b36843ce6d10955.htm


关于设置QWidget的setAttribute(Qt::WA_NoSystemBackground)或setUpdatesEnabled(false)的问题

本人在设置QWidget的setAttribute(Qt::WA_NoSystemBackground)或setUpdatesEnabled(false)后,当QWidget随着窗口大小变化而变化的时候,其黑色背景不能跟随窗口大小而变化(慢慢拖动是可以的,要是速度快点就不行了)。
设置setUpdatesEnabled(false)主要是为了在窗口上用SDL播放视频时防止闪烁的。
请问有遇到此类情况的兄弟指导指导。万分感谢!!!                                         --------------------编程问答--------------------你那个问题还没搞定吗setAttribute(Qt::WA_PaintOnScreen); 这个关掉双缓存再用eventFilter过滤掉闪烁时的事件 event->ignore()即可        --------------------编程问答--------------------setAttribute(Qt::WA_PaintOnScreen);这个是针对要显示的widget的窗口进行设置    --------------------编程问答--------------------楼上说的方法我试过了,好像效果不怎么样。请问你说的“用eventFilter过滤掉闪烁时的事件 ”具体是哪些事件???我现在是通过调用widget的setUpdatesEnabled(false)可以解决闪烁的问题,但是当不播放视频的时候,拖动窗口大小变化的时候,导致视频播放widget的黑色背景不能随着widget大小而改变,我调试跟了,widget的大小是改变的,就是它的黑色背景无法跟着变化。        --------------------编程问答--------------------            你都disable update了 界面都不刷新了 当然没问题了 但你这样是无法重绘的就是说我感觉你这种方法 无法彻底解决闪烁的问题 当然你可以试试 可能不同的平台有不同的反应你eventfilter试试  打下log 看都触发了哪些事件 然后试试 屏蔽掉        --------------------编程问答--------------------            就只有Paint和Resize两个事件,屏蔽掉还是没有效果,视频同样要闪烁的。        --------------------编程问答--------------------            论坛里就没有人玩QT+SDL实现视频播放的吗?顺便问问,有没有人仔细研究过VLC源码的,里面应该有用到使用QT+SDL的吧???!


0 0