2012-01-14 59 views
4

我有一個QLabel,我經常設置它的像素映射(視頻回放)。在我的應用程序中,用戶需要能夠在視頻上方繪製(框)。我如何將QPaintDevice類(QWidget,QPixmap,QImage等)之一直接放在上面,並且與QLabel的大小相同以進行繪製。該元素需要具有透明背景,因此在其上繪製的圖形將顯示在視頻上。在Qt Designer中分層UI元素

回答

4

將您想要繪製形狀的小部件添加爲視頻標籤的子部件。首先添加布局,以便子部件將匹配父部件的大小。該代碼將是這樣的:

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

你應該看到文本疊加在視頻,它應該在視頻控件如果調整保持居中。對於最終的代碼,您可以使用自己的一些小部件子類,它允許您攔截鼠標操作並繪製矩形,但這是基本思路。

+0

什麼是對象的覆蓋?你沒有定義它 – user1767754 2016-01-17 08:14:41

+0

這是名爲「overlayWidget」的QLabel。修正它,謝謝。 – 2016-01-19 17:25:07