请教一个关于 Qt 与 SDL 配合使用的问题

1次阅读

共计 455 个字符,预计需要花费 2 分钟才能阅读完成。

我使用 Qt 创建了一个窗口,将窗口句柄传给了 SDL,使用 SDL 在这个窗口句柄上渲染视频。目前遇到了问题,具体描述为:

  1. 如果是直接把这个窗口的句柄传给 SDL 渲染,初始启动渲染正常,SDL 中获取到的窗口的大小和渲染区域的大小也是正常的。分辨率大小改变时,SDL 中获取的窗口大小就变成了整个窗口大小(+ 菜单栏),导致渲染变成了整个窗口,将菜单栏覆盖了。
  2. 上面的渲染问题,可以通过在这个 Qt 的窗口中放一个 QLabel,然后将 QLabel 的句柄传递给 SDL 进行渲染,这样就解决了上面的渲染问题。但是又会导致另一个问题,如果传递 QLabel 的句柄到 SDL,SDL 会捕获不到键盘事件,而上面的方案 Qt 和 SDL 都能捕获到键盘事件,但是渲染会有问题。

这个该怎么解决?或者有做过的朋友没,这个方案能不能走通。

PS:目前有两个解决方案备用

  1. 在 Qt 中捕获到键盘事件后,使用 SDL 的事件转换一下发送出去,但是需要在 Qt 的项目中额外依赖 SDL,不太想用。
  2. 将图像传递出来,在 Qt 中进行单独渲染,不使用 SDL 了,这样就改变了原来的方案,所以也是备选。
正文完
 0