Qt设计器中的分层UI元素

Qt设计器中的分层UI元素,qt,qt-creator,qt-designer,qlabel,Qt,Qt Creator,Qt Designer,Qlabel,我有一个QLabel,我经常将它设置为pixmap(视频播放)。在我的应用程序中,用户需要能够在视频上方绘制(框)。我如何将QPaintDevice类(QWidget、QPixmap、QImage等)中的一个直接放在与用于绘制的QLabel相同大小的上面。此元素需要有透明背景,以便在其上绘制的形状将显示在视频上。将要绘制形状的小部件添加为视频标签的子小部件。首先添加布局,以便子小部件与父小部件的大小匹配。代码如下所示: QHBoxLayout *layout = new QHBoxLayout(

我有一个QLabel,我经常将它设置为pixmap(视频播放)。在我的应用程序中,用户需要能够在视频上方绘制(框)。我如何将QPaintDevice类(QWidget、QPixmap、QImage等)中的一个直接放在与用于绘制的QLabel相同大小的上面。此元素需要有透明背景,以便在其上绘制的形状将显示在视频上。

将要绘制形状的小部件添加为视频标签的子小部件。首先添加布局,以便子小部件与父小部件的大小匹配。代码如下所示:

QHBoxLayout *layout = new QHBoxLayout(videoWidget);
QLabel *overlayWidget = new QLabel();
overlayWidget->setAlignment(Qt::AlignCenter);
overlayWidget->setText("Overlaid Text");
layout->addWidget(overlayWidget);

您应该看到视频上覆盖的文本,如果调整了大小,它应该保持在视频小部件的中心。在最后的代码中,您可以使用自己的小部件子类来截取鼠标动作并绘制矩形,但这是基本思想。

对象的覆盖是什么?您不需要定义它,它是名为“OverlaWidget”的QLabel。修好了,谢谢。