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