我已经使用gst_x_overlay_set_xwindow_id()将gstreamer连接到QWidget,并在QWidget上获取视频。如何在这个透明的视频上叠加另一个小部件(例如pushbutton,combobox),使得按钮位于QWidget上的视频顶部。
这取决于平台和用于视频的sink。大多数情况下,sink完全使用提供的小部件来渲染视频。因此,您应该创建另一个小部件,并在呈现视频的小部件的show()之后显示它。视频将被顶部小部件覆盖。
对于第二个小部件,您需要添加以下标志:
setAttribute(Qt::WA_TranslucentBackground);
setStyleSheet("background:transparent;");
如果您想只使用一个QWidget,也可以尝试通过sink的colorkey来进行调整。但这取决于您使用的sink。