1

我目前正在使用 Qt 开发媒体播放器。所需的常见功能之一是能够切换全屏。

渲染画布本质上是一个 QGLWidget(我从它继承)。它被添加到作为该媒体播放器的主窗口的应用程序窗口中。除了渲染画布,应用程序窗口还有工具栏、状态栏和其他小部件。我要实现的全屏是让渲染画布占据全屏,而其他小部件不可见。同时,我仍然可以通过按键触发事件。

我尝试将渲染画布的父级重置为 0 并调用 showFullScreen() 函数。我在应用程序窗口上调用了 hide()。这使得画布占据了预期的整个屏幕。但是,应用程序没有抓取任何按键事件。结果,我无法恢复正常。另外,画布背景在黑白之间闪烁(默认背景为白色)。

无论如何,我不认为我尝试过的方式是实现这一点的最佳方式。因为当我恢复正常时会有一些复杂的重新养育。而且整个应用程序变得难以管理,因为在全屏时会执行一些任务,例如查看 piexl 值(源是原始的)。

有人可以建议一种更好的方法来实现全屏切换吗?

4

1 回答 1

0

您使用的是哪个版本?

我建议你一个你必须测试的解决方案。当你想全屏时,尝试复制你的内容(如果视频在一个小部件中,打开一个新的 QWidget 并将内容复制到新的小部件),理论上你会有 2 个具有相同内容的小部件,但你不应该隐藏和缩小任何东西的大小。告诉我它是否对你有用。

其次,看看这些帖子,可能会有用:

最后,再读一遍,你可能错过了一些东西:/ http://doc.qt.io/qt-5/qwidget.html#showFullScreen

如果我误解了什么,或者有什么(和什么)有帮助,请告诉我。

于 2011-12-06T23:32:32.070 回答