4
我有一个QLabel,我经常设置它的像素映射(视频回放)。在我的应用程序中,用户需要能够在视频上方绘制(框)。我如何将QPaintDevice类(QWidget,QPixmap,QImage等)之一直接放在上面,并且与QLabel的大小相同以进行绘制。该元素需要具有透明背景,因此在其上绘制的图形将显示在视频上。在Qt Designer中分层UI元素
我有一个QLabel,我经常设置它的像素映射(视频回放)。在我的应用程序中,用户需要能够在视频上方绘制(框)。我如何将QPaintDevice类(QWidget,QPixmap,QImage等)之一直接放在上面,并且与QLabel的大小相同以进行绘制。该元素需要具有透明背景,因此在其上绘制的图形将显示在视频上。在Qt Designer中分层UI元素
将您想要绘制形状的小部件添加为视频标签的子部件。首先添加布局,以便子部件将匹配父部件的大小。该代码将是这样的:
QHBoxLayout *layout = new QHBoxLayout(videoWidget);
QLabel *overlayWidget = new QLabel();
overlayWidget->setAlignment(Qt::AlignCenter);
overlayWidget->setText("Overlaid Text");
layout->addWidget(overlayWidget);
你应该看到文本叠加在视频,它应该在视频控件如果调整保持居中。对于最终的代码,您可以使用自己的一些小部件子类,它允许您拦截鼠标操作并绘制矩形,但这是基本思路。
什么是对象的覆盖?你没有定义它 – user1767754 2016-01-17 08:14:41
这是名为“overlayWidget”的QLabel。修正它,谢谢。 – 2016-01-19 17:25:07