我有一个 QLabel,我一直在设置它的像素图(视频播放)。在我的应用程序中,用户需要能够在视频上方绘制(框)。如何将 QPaintDevice 类之一(QWidget、QPixmap、QImage 等)直接放在上面,并且与 QLabel 的大小相同以进行绘画。该元素需要具有透明背景,以便在其上绘制的形状会出现在视频上。
问问题
3073 次
1 回答
4
添加要在其上绘制形状的小部件作为视频标签的子小部件。首先添加一个布局,以便子小部件与父小部件的大小相匹配。代码将是这样的:
QHBoxLayout *layout = new QHBoxLayout(videoWidget);
QLabel *overlayWidget = new QLabel();
overlayWidget->setAlignment(Qt::AlignCenter);
overlayWidget->setText("Overlaid Text");
layout->addWidget(overlayWidget);
您应该看到覆盖在视频上的文本,如果调整大小,它应该保持在视频小部件的中心。对于您的最终代码,您将使用自己的一些小部件子类,它允许您拦截鼠标操作并绘制矩形,但这是基本思想。
于 2012-01-15T04:40:26.643 回答