2011-12-06 34 views
1

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

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

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

不管怎样,我不认为我尝试过的方法是实现这一点的最佳方式。由于当我切换回正常状态时会发生一些复杂的重新布局。并且整个应用程序变得难以管理,因为在全屏时将会执行一些任务,例如查看piexl值(源代码是原始的)。

任何人都可以提出一个更好的方法来实现全屏切换吗?

回答

0

您使用的是哪个版本?

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

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

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

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

+0

我认为你的建议对我有意义。我正试图在我的应用程序中实现这一点。我会让你知道事情进展情况。 – Scrathis

+0

我已经使用您建议的方法实现了全屏切换。迄今为止效果很好。非常感谢。@ Max13 – Scrathis