覆盖a的最佳实践是什么Phonon.VideoWidget?

2024-03-29 01:09:11 发布

您现在位置:Python中文网/ 问答频道 /正文

最近几天我试图找到一个有效的解决方案来覆盖声子视频小工具用一个简单的QLabel。遗憾的是,我没能找到一个有效的解决办法。在

以下是我尝试过的:

  1. 为人父母。我尝试了“正常”的育儿方法,将QLabel寻址到VideoWidget。结果:标签根本不显示。

  2. QSTACKED布局。这里建议:http://www.qtcentre.org/threads/31490-Overlaying-Widgets-on-top-of-VideoWidget。结果:显示标签,但始终位于视频后面

  3. 图形视图。我在这里做了很多尝试,因为它看起来是最有希望的,但是最后CPU负载太高,所以视频无法回放。将视图的viewport设置为QGLWidget并没有解决这个问题。结果:覆盖工作,但由于高CPU负载导致视频无法播放。

  4. 子类化VideoWidget。如前所述:https://wiki.qt.io/Overlay_widget_for_Phonon_VideoWidget。我用同样的方法来创建覆盖层。这毕竟很好,除了moveEvent。如果在移动小部件完成后重新对齐标签,这看起来不太好。在移动VideoWidget时,有没有方法可以更新它?

我真的希望有人能帮助我(我用PySead,但是C++中的例子也可以),或者给我一个指针,看看哪里。请让我知道,如果我要分享一些代码片段复制。在


Tags: 工具方法视图视频标签布局cpu解决方案
1条回答
网友
1楼 · 发布于 2024-03-29 01:09:11

你能做的最好的就是创建一个浮动在你的视频小部件上的新窗口。例如,创建一个无父QLabel并确保它与主窗口同步移动。在

label = new QLabel();
label->setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);

在QMainWindow子类中,重写moveEvent和resizeEvent并执行以下操作:

^{pr2}$

这样可以将标签保留在左下角,根据您的需要进行更改。在

相关问题 更多 >